我试图插入多个复选框,但无法在codeigniter 2中获取它们的值
这是我在查看
中的代码 <!-- Multiple Checkboxes (inline) -->
<div class="form-group">
<div class="col-md-4">
<label class="checkbox-inline" for="checkboxes-0">
<input type="checkbox" name="checkboxes[]" id="checkboxes-0" value="22">
Пентхаус
</label>
<br>
<!-- Text input-->
<div class="form-group">
<div class="col-md-8">
<input id="cena" name="cena[]" type="text" placeholder="Въведи цена" class="form-control input-md">
</div>
</div>
<label class="checkbox-inline" for="checkboxes-1">
<input type="checkbox" name="checkboxes[]" id="checkboxes-1" value="21">
Гараж/Паркомясто
</label>
<br>
<!-- Text input-->
<div class="form-group">
<div class="col-md-8">
<input id="cena" name="cena[]" type="text" placeholder="Въведи цена" class="form-control input-md">
</div>
</div>
这是我的模特:
public function InsertCheckbox() {
$property_typesRequest = $this->input->post('checkboxes');
foreach($property_typesRequest as $value){
$this->db->insert_batch('property_type_details', $property_typesRequest);
}
}
在Controller中我只是使用它:
$this->estate_m->InsertCheckbox();
这将在数据库中插入0,当我var_dump $ property_typesRequest theres显示bool(false)时。我无法得到复选框的值......
修改...
我尝试编辑我的代码,但仍然没有结果:
public function edit()/*this is controller */
{
$data=array('column_name'=>$this->input->post('checkboxes');
$result=$this->estate_m->InsertCheckbox($data);
if($result==true)
{
echo "Success";
}
else
{
echo "Fail";
}
}
public function InsertCheckbox($data) /*this is Model */
{
$this->db->insert('property_type_details', $data);
return ($this->db->affected_rows() != 1 ) ? false : true;
}
使用此编辑的代码总是给我Succes
答案 0 :(得分:1)
表单提交的值应为多维数组 为了实现这一点,您的表单输入应该是多维的。
对于insert_batch()函数,数组应该是多维的。 在数组中,每个键必须是db表中的字段名,value必须是表单输入值。 因此,改变表格结构,如下面的数组。
array(
array(
'checkboxes' => 'checkboxe value' ,
'cena' => 'cena values'
),
array(
'checkboxes' => 'checkboxe value' ,
'cena' => 'cena values'
)
);
表单输入应如下所示:
<input name="data[1][checkbox_columnname]" type="checkbox" value="21">Пентхаус
<input name="data[1][textbox_columnname]" type="text">
<input name="data[2][checkbox_columnname]" type="checkbox" value="22">Гараж/Паркомясто
<input name="data[2][textbox_columnname]" type="text">
模型不应该有foreach循环。 只需传递如下数据。
$data=$this->input->post('data');
$this->db->insert_batch('mytable', $data);
答案 1 :(得分:0)
请在模型中使用此代码。
public function InsertCheckbox() {
$property_typesRequest = $this->input->post('checkboxes');
foreach($property_typesRequest as $value){
$data['columnename'] = $value;
$this->db->insert('tablename', $data);
}
}
希望它插入数据库
谢谢