一次循环3个数组并在数据库中保存值

时间:2015-04-02 02:32:24

标签: php cakephp

我在HTML页面中有三个输入类型的文本和一个按钮,如果点击则复制每个文本框(Javascript)使它们成为6。

<input type="text" name="category[]">
<input type="text" name="quantity[]">
<input type="text" name="amount[]">

<button>Add more</button> 

再次生成相同的输入:

<input type="text" name="category[]">
<input type="text" name="quantity[]">
<input type="text" name="amount[]">

Cakephp中的一段代码我一直在尝试:

$data = $this->request->data;
foreach($data['category'] as $index => $value){
 $this->ModelName->save($value);
}

尝试一次插入两行,数量,类别和金额为列。但它不是插入而不是给出任何错误。

有没有办法实现这个目标? 感谢。

1 个答案:

答案 0 :(得分:0)

我不确定您的模型在cakephp中是如何工作的,但您应该能够获得完整的数据分组,如:

foreach($data['category'] as $index => $value){
    $category = $value
    $quantity = $data['quantity'][$index];
    $amount = $data['amount'][$index];

    // use the above 3 variables however you need to to persist the model
    //$this->ModelName->save($value);
}

另外,您可能需要考虑将html输入重新排序为:

<input type="text" name="item[0][category]">
<input type="text" name="item[0][quantity]">
<input type="text" name="item[0][amount]">

然后维护下一个索引,为每个附加组增加item的数字索引

这将允许您迭代:

foreach($data['item'] as $index => $group){
     //$group['category'];
     //$group['quantity'];
     //$group['amount'];
}