我正在使用codeigniter框架和为不同类型的用户设置权限的Web应用程序,因此我需要在db中为每个用户添加大约35行,每行有6个复选框值(0,1)。将这些值存储在数组中并发送到MODEL进行插入时,我遇到了困难。
这是控制器代码:
public function set_priv(){
$data = array(
array(
'type_id' => $this->input->post('priv_type_id'),
'module_name' => 'Classes',
'can_access' => $this->input->post('classes[0]'),
'can_insert' => $this->input->post('classes[1]'),
'can_delete' => $this->input->post('classes[2]'),
'can_update' => $this->input->post('classes[3]'),
'can_export' => $this->input->post('classes[4]'),
'can_print' => $this->input->post('classes[5]'),
),
// ),
);
}
用于理解的HTML表单代码 每个复选框用于访问,插入,更新和删除权限等。
<div class="col-md-1">
<input type="checkbox" name="classes[]" />
</div>
<div class="col-md-1">
<input type="checkbox" name="classes[]" />
</div>
<div class="col-md-1">
<input type="checkbox" name="classes[]" />
</div>
<div class="col-md-1">
<input type="checkbox" name="classes[]" />
</div>
<div class="col-md-1">
<input type="checkbox" name="classes[]" />
</div>
<div class="col-md-1">
<input type="checkbox" name="classes[]"/>
</div>
答案 0 :(得分:0)
为什么使用多维数组插入数据? 如果您正在获取数组中的复选框值。 我认为应该是这样的。
$data = array(
'type_id' => $this->input->post('priv_type_id'),
'module_name' => 'Classes',
'can_access' => $this->input->post('classes[0]'),
'can_insert' => $this->input->post('classes[1]'),
'can_delete' => $this->input->post('classes[2]'),
'can_update' => $this->input->post('classes[3]'),
'can_export' => $this->input->post('classes[4]'),
'can_print' => $this->input->post('classes[5]'),
);
答案 1 :(得分:0)
如果要使用任何阵列在视图上添加复选框,则可以使用相同的数组来比较选中的复选框或不选中的复选框。
例如,这里是在视图中添加复选框的数组
$data[0] = 'can_access';
$data[1] = 'can_delete';
$data[2] = 'can_update';
在您的视图中,您的代码将是
<?php foreach($data as $key => $value){ ?>
<div class="col-md-1">
<input type="checkbox" name="classes[<?php echo $key; ?>]" />
</div>
<?php } ?>
表单提交后,您必须使用相同的数组来检查$ data数组。 提交后的控制器代码将是
$builddata = [];
foreach($data as $key =>$value){
if(isset($this->input->post('classes['.$key.']'))){
$builddata[$value] = true;
}else{
$builddata[$value] = false;
}
}
printr($builddata);
你的数组将像这样构建
$builddata['can_access'] = true/false;
$builddata['can_delete'] = true/false;
$builddata['can_update'] = true/false;
答案 2 :(得分:0)
您无法像这样访问帖子数据。见下面的代码
public function set_priv(){
$classes = $this->input->post('classes');
$data = array(
array(
'type_id' => $this->input->post('priv_type_id'),
'module_name' => 'Classes',
'can_access' => $classes[0],
'can_insert' => $classes[1],
'can_delete' => $classes[2],
'can_update' => $classes[3],
'can_export' => $classes[4],
'can_print' => $classes[5],
),
// ),
);
}