2017-02-15 31 views
0

如何顯示先前選中的複選框選中狀態。 在我的表中的值存儲像電冰箱,空調器,電視機在一列如何使用php顯示以前選中的複選框

<?php 
    $answered="Refrigerator, Airconditioner, Television"; 
    $answer_options=array("Refrigerator","Airconditioner","tv"); 
    $ans_checked=explode(',',$answered); 
    echo "<pre>"; 
    //print_r($ans_checked); 
     $checked=''; 

    foreach($answer_options as $a) 
    { 
     echo $a."<br>"; 
     //print_r($ans_checked); 
     if(in_array($a,$ans_checked)) 
     { 
      $checked="checked"; 
     } 
    //echo "$a<br>"; 
    echo "<input type='checkbox' ".$checked." >$a<br>"; 
    } 
    ?> 
+0

什麼是錯的代碼? – NID

回答

1

當我看到它正在檢查該代碼的所有複選框。一旦$checked設置爲「檢查」值,它仍然存在。

如果不存在,您應該使用else部分取消設置。或者做 -

$checked=''; 
if(in_array($a,$ans_checked)) 
{ 
    $checked="checked"; 
} 

裏面的循環。

而且你應該做的 -

$ans_checked=array_map('trim', explode(',',$answered)); 
0
<?php 
    $answered="Refrigerator, Airconditioner, Television"; 
    $answered=str_replace(', ',',',$answered); 
    $answer_options=array("Refrigerator","Airconditioner","tv"); 
    $ans_checked = explode(',', $answered); 
    foreach ($answer_options as $a) 
    { 
     $checked = ''; 
     if (in_array($a, $ans_checked)) 
     { 
      $checked = "checked"; 
     } 
     echo $checked."<input type='checkbox' " . $checked . " >$a<br>"; 
    } 
    ?> 
+0

你必須注意只有第二行: –