2015-09-14 60 views
0

我試圖讓複選框值插入到我的數據庫中作爲檢查..我插入它使用implode方法作爲字符串。它成功地插入值,但我的病情得到複選框值「選中」不工作..獲取從數據庫codeigniter檢查複選框值

<label>Some text</label> 
<input type="checkbox" name="text[]" value="text1" 
<?php echo set_checkbox('text', $row->Some_text)== 'text1' ? "checked" : "";?>>text1 
<input type="checkbox" name="text[]" value="text2" 
<?php echo set_checkbox('text', $row->Some_text)== 'text2' ? "checked" : "";?>>text2 
<input type="checkbox" name="text[]" value="text3" 
<?php echo set_checkbox('text', $row->Some_text)== 'text3' ? "checked" : "";?>>text3 
<input type="checkbox" name="text[]" value="text4" 
<?php echo set_checkbox('text', $row->Some_text)== 'text4' ? "checked" : "";?>>text4 

我寫了型號爲編輯爲:

public function edit($id) 
    { 
    $sometext = $this->input->post('text'); 
     $data=array(
     'Some_text'=>json_encode(implode(",", $sometext)), 
     ); 
     $this->db->set($data); 
     $this->db->where('User_id',$id); 
     $this->db->update('tbl_check'); 
     $query = $this->db->get('tbl_check'); 
     return $query->row(); 
     } 

和編輯工作良好..

+0

這是一點點混亂,但,你有沒有試過包裹set_checkbox和==在 '文本'()?像這樣echo(set_checkbox('text',$ row-> Some_text)=='text1')? 「checked」:「」;?>' – Epodax

+0

我猜你應該包裝一切:'echo((set_checkbox('text',$ row-> Some_text)=='text1')?「checked」:「」);? >' –

+0

無法正常工作。 。 –

回答

2

有時從框架的使用功能只是使它完全不必要的和

<input type="checkbox" name="text[]" value="text1" <?php echo ($yourVar == 'text1' ? 'checked' : null); ?>> 
0

您錯誤地使用了set_checkbox。看看documentation:不要在條件語句中使用它。你的問題並沒有提供多少信息,但我相信你想要的東西是這樣的:

<input type="checkbox" name="text[]" value="text1" 
<?php echo set_checkbox('text[]', 'text1');?>>text1 
<input type="checkbox" name="text[]" value="text2" 
<?php echo set_checkbox('text', 'text2');?>>text2 
<input type="checkbox" name="text[]" value="text3" 
<?php echo set_checkbox('text', 'text3');?>>text3 
<input type="checkbox" name="text[]" value="text4" 
<?php echo set_checkbox('text', 'text4');?>>text4 
1

剛剛從模型中獲取數據。並將其傳遞給複選框頁面。

$data['check_box_data']=$query->row_array(); 
$this->load->view('page',$data); 

查看:

<?php 
    $c_box1=$c_box2=$c_box3=''; 
    $chk_data=explode(',',$chk_box_data); // $chk_box_data is which is from DB 
    foreach($chk_data as $list) 
    { 
     //chk_box1_value1,2,3 are original check box values 
     if($list=='chk_box1_value'){$c_box1='checked';} 
     if($list=='chk_box2_value'){$c_box2='checked';} 
     if($list=='chk_box3_value'){$c_box3='checked';} 
    } 
?> 

label>Some text</label> 
<input type="checkbox" name="text[]" value="text1" 
<?php echo $c_box1;?>>text1 
<input type="checkbox" name="text[]" value="text2" 
<?php echo $c_box2;?>>text2 
<input type="checkbox" name="text[]" value="text3" 
<?php echo $c_box3;?>>text3 

試試這個....