这最终可能不会成为问题,但我会就这种情况给出一些背景知识。
我(尝试)为我工作的业务创建退货授权系统。所有内部测试似乎表明系统按预期工作,并且所有错误都已修复。我的错误日志是空的,我的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上做出“回归”,这似乎也打破了它。
据我所知,处理输入数组的不同机器/浏览器/操作系统似乎存在问题......
答案 0 :(得分:0)
我最终删除了
$insert_requests['po_number'] != 0
来自我的 if 语句,只需将其替换为
即可if( $insert_requests ) { ... }
首先代表我放在那里的蠢事。感谢那些评论的人。
编辑澄清
本来应该检查插入请求是否存在,而不是看它是否等于某事。