>我有这个问题
这是我看到的显示.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+2+3 来自第 1 行,+2 来自第 2 行,+3 来自第 3 行)
我想要的是获取每一行的值并保存到数据库上的表
+1+2+3+ 保存到数据库
+2+ 保存到数据库
+3+ 保存到数据库
Database
id | isi |
1 | +1+2+3+ |
2 | +2+ |
3 | +3+ |
我想我必须在我的模型上循环代码,但我不知道我必须写什么代码
你需要的是一个二维数组。第一个维度用于行,第二个维度用于列。
首先稍微更改标记,使提交的值是二维的:
<?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
}
您需要一个二维数组,第一维是行,第二维是复选框。在表单中,您应该具有:
<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]);