我希望按网格插入数据,其中数据可以是1行或多行。我想用codeigniter中的数组做这个。问题是我无法通过我的代码在我的数据库中插入此代码。我正在做什么的代码演示。我希望按网格在数据库中插入多行,我在帖子中接收数据作为数组,我无法插入数据。
<?php
$n = $m; // (could be any number to nth level);
for($i=0; $i<=$n; $i++) {
?>
<tr><td><input name="field1[]" id="active[]" value="" /></td>
<td><input name="field2[]" id="active[]" value="" />
</td> <td><input name="field3[]" id="active[]" value="" />
</td> </tr>
<?php }
for ($i = 0; $i < count($_POST['field1']); $i++) {
$data = array(
'field1' => $_POST['field1'][$i],
'field2' => $_POST['field2'][$i],
'field3' => $_POST['field3'][$i],
'field4' => $_POST['field4'][$i], );
if ($_POST['field'][$i] = '') {
$this->db->insert('field_table', $data);
}
?>
------------------------------------------------------------------------
答案 0 :(得分:0)
所以你的观点
<tr><td><input name="field1[]" id="active[]" value="" /></td>
<td><input name="field2[]" id="active[]" value="" />
</td> <td><input name="field3[]" id="active[]" value="" />
现在在控制器中你需要将所有三个数组都作为
$a=$_POST['field1'];
$b=$_POST['field2'];
$c=$_POST['field3'];
$i = new MultipleIterator();
$i->attachIterator(new ArrayIterator($a), 'field1');
$i->attachIterator(new ArrayIterator($b), 'field2');
$i->attachIterator(new ArrayIterator($v), 'field3');
那就简单了
foreach ($i as $item) {
$dr = $item[0];
$tl = $item[1];
$li = $item[2];
$data = array(
'field1' => $dr,
'field2' => $tl,
'field3' =>$li
);
if ($_POST['field'][$i] = '') {
$this->db->insert('field_table', $data);
}
}
宾果