Codeigniter插入数组时出现问题


Codeigniter Issues with inserting arrays

这最终可能不是问题所在,但我会提供一些有关情况的背景信息。

我(试图)为我工作的企业创建一个退货授权系统。所有内部测试似乎都表明系统按预期工作,所有错误都已修复。我的错误日志是空的,我的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上"回归",这似乎也打破了它。

据我所知,不同的机器/浏览器/操作系统对输入数组的处理方式不同,这似乎是一个问题。。。

我最终删除了

$insert_requests['po_number'] != 0

从我的if语句,并简单地将其替换为

if( $insert_requests ) { ... }

一开始就代表我放在那里的愚蠢的东西。感谢那些发表评论的人。

编辑以供澄清

应该检查插入请求是否存在,而不是查看它是否等于某个值。