【发布时间】:2015-03-25 22:19:44
【问题描述】:
这最终可能证明不是问题,但我会提供一些有关情况的背景。
我已(尝试)为我工作的企业创建退货授权系统。所有内部测试似乎都表明系统按预期工作并且所有错误都已修复。我的错误日志是空的,我的 javascript 控制台没有显示任何异常。
在我想象的某些情况上,由于浏览器过时(尽管我持怀疑态度,因为这似乎是服务器端问题),没有插入“退回”的产品进入我的数据库。
在提交时,我正在收集用户的联系信息并将其放入我数据库中的表中——这很好用而且没有问题。
一旦我获得了这些信息,我就会在包含名称数组的字段上运行 foreach 循环。
foreach( $this -> input -> post('po_number') as $number => $value ){
$ponum = $this -> input -> post('po_number');
$innum = $this -> input -> post('inv_number');
$qty = $this -> input -> post('quantity');
$panum = $this -> input -> post('part_number');
$desc = $this -> input -> post('description');
$reason = $this -> input -> post('reason');
$insert_requests = array(
'rga_id' => $rga_no,
'po_number' => $ponum[$number],
'inv_number' => $innum[$number],
'quantity' => $qty[$number],
'part_number' => $panum[$number],
'description' => $desc[$number],
'reason' => $reason[$number]
);
if( $insert_requests['po_number'] != 0){
$input = $this->db->insert('new_rga_returns', $insert_requests);
}
}
所以这就是我上面提到的。这些 "$this->input->post" 中的每一个都是我拥有的一个字段,可以通过 javascript / jQuery 添加。最初有一行输入,可以根据需要添加更多输入。
但是,每个“RGA”都没有发送一行。
最令人沮丧的部分是(如上所述)每当办公室里有人输入请求时,它就可以工作(运行win7 chrome V41)。我还在 IE10 和最新版本的 FireFox 上进行了测试,一切运行良好。 (由于兼容性,无法下载旧版浏览器)
我们已经让一个人在他们的 Mac 上“返回”,这似乎也破坏了它。
据我所知,不同的机器/浏览器/操作系统处理输入数组的方式不同似乎是一个问题......
【问题讨论】:
-
您可以从modern.ie 下载旧版本的IE 进行测试。
-
浏览器对 PHP 中数组的构造方式没有任何限制。可能发生的情况是参数没有在您遇到问题的浏览器上发送。这是通过表单还是 ajax 请求来的?如果是后者,那么这些浏览器的 JavaScript 中可能有些东西不起作用。
-
PHP在服务器上运行...如果发布的数据相同,PHP不关心浏览器。
标签: php jquery arrays codeigniter