我已經花了很多時間在這個多選的數組中,它在多個下拉框中保存多個值,我想要的是將選定的值插入到表中。Codeigniter插入多個選定的值到數據庫中
讓的說我被選中1,2,3
下拉框中,當我的print_r($這個 - >輸入 - >後( '類'))`,它顯示
Array ([0] => 1 [1] => 2 [2] => 2)
然而,當插入到表中,其只插入最後一個值而不是所有3個值。
這裏是查看選擇幾個值:
$category = array(
'name' => 'category',
'id' => 'category'
);
<select name="category[]" id="<?php echo $category['id'] ?>" multiple="multiple">
<?php
foreach($catOpts as $catOpt)
{
$selected = ($this->input->post('category')==$catOpt->category_name) ? 'selected' : '';
echo '<option value="'.$catOpt->category_id.'" '.$selected.'>'.$catOpt->category_name.'</option>';
}
?>
</select>
在控制器,我值傳遞到驗證,如果驗證有效,:
$this->form_validation->set_rules('category[]', 'Category', 'required');
if($this->form_validation->run()) { // validation ok
if(!is_null($data = $this->db_model->save_listing(
$this->form_validation->set_value('category[]')
))) { // success
//some message to acknowledge success created.
}
}
模式插入到表:
function save_listing($category)
{
$data = array(
'category_id' => $category
);
$this->db->insert('listing', $data);
return TRUE;
}
我不知道如何將所有值(數組)傳遞到控制器$this->form_validation->set_value('category[]')
,然後執行模型函數save_listing()
並將所有值保存到數據庫的列中。
請幫助解決我的問題,我已經瀏覽了很多論壇,但沒有運氣得到解決方案。
謝謝。