我有这个问题
这是我view.php的显示
id menu +1 +2 +3
1 bla_1 [] [] []
2 bla_2 [] [] []
3 bla_3 [] [] []
这是我的观看代码
<?php $i=1; foreach ($test as $row) : ?>
<tr>
<td><input type='hidden' name='id[]' value="<?php echo $row->menu_id ?>" /></td>
<td><input type="text" name="Menu" value="<?php echo $row->menu_nama ?>" disabled <td>
<td><input type="checkbox" name="<?php echo 'menu_id[]'; ?>" value="+1" /></td>
<td><input type="checkbox" name="<?php echo 'menu_id[]'; ?>" value="+2" /></td>
<td><input type="checkbox" name="<?php echo 'menu_id[]'; ?>" value="+3" /></td>
</tr>
<?php $i++; endforeach ; ?>
如果我选中第一个复选框,我将获得+1,第二个复选框我将获得+2
我的目标是加入每个选中复选框的输入并根据id
保存到数据库这是我在模型上加入复选框值
的代码$menu_id= $this->input->post('menu_id');
$menu_idc = '';
$count = count($menu_id);
$i=0;
foreach($menu_id as $e){
if($i < $count -1)
{
$menu_idc .= $e.'';
echo $i ;
}
else{
$menu_idc .= $e.'+';
}
$i++;
}
var_dump($menu_idc);
die;
如果我选中此复选框,则从示例
id menu +1 +2 +3
1 bla_1 [v] [v] [v]
2 bla_2 [] [v] []
3 bla_3 [] [] [v]
我写的代码我会得+ 1 + 2 + 3 + 2 + 3 +(第1行+ 1 + 2 + 3,第2行+2,第3行+3)
我想要的是获取每一行的值并保存到数据库中的表
+ 1 + 2 + 3 +保存到数据库中
+2+保存到数据库
+3+保存到数据库
Database
id | isi |
1 | +1+2+3+ |
2 | +2+ |
3 | +3+ |
我想我必须在我的模型上循环代码,但我不知道我要编写什么代码
答案 0 :(得分:2)
你需要的是一个二维数组。第一个维度用于行,第二个维度用于列。
首先更改标记以使提交的值为2维:
<?php $i=1; foreach ($test as $row) : ?>
<tr>
<td><input type='hidden' name="menu[<?php echo $i ?>][id]" value="<?php echo $row->menu_id ?>" /></td>
<td><input type="text" name="menu[<?php echo $i ?>][menu]" value="<?php echo $row->menu_nama ?>" disabled <td>
<td><input type="checkbox" name="menu[<?php echo $i ?>][plus][]" value="+1" /></td>
<td><input type="checkbox" name="menu[<?php echo $i ?>][plus][]" value="+2" /></td>
<td><input type="checkbox" name="menu[<?php echo $i ?>][plus][]" value="+3" /></td>
</tr>
<?php $i++; endforeach ; ?>
此代码应该可以正常工作:
$menus = $this->input->post('menu');
foreach ($menus as $menu)
{
$id = $menu['id'];
$name = $menu['name'];
$menu_ids = "";
if (is_array($menu['plus']))
{
$menu_ids = join('', $menu['plus'])).'+';
}
// here you can save it now by executing a sql update or whatever
}
答案 1 :(得分:0)
您需要一个二维数组,第一个维度是行,第二个维度是复选框。在表单中,您应该:
<td><input type="checkbox" name="<?php echo 'menu_id['.$row->menu_id.'][]'; ?>" value="+1" /></td>
<td><input type="checkbox" name="<?php echo 'menu_id['.$row->menu_id.'][]'; ?>" value="+2" /></td>
<td><input type="checkbox" name="<?php echo 'menu_id['.$row->menu_id.'][]'; ?>" value="+3" /></td>
然后在您的处理脚本中,您可以执行以下操作:
foreach ($_REQUEST['id'] as $id)
$isi[$id] = implode('', $menu_id[$id]);