2013-11-27 21 views
0

我有一個代碼:如何使動態複選框(選中選項)

while ($row = mysql_fetch_assoc($query_model)) { 
echo '  <label class="checkbox"> 
       <input name="model[]" value="'.$row["Model"].'" type="checkbox" checked>'.$row["Model"].' 
      </label> 
     '; 
} 

我要讓檢查選項動態。
首先,我將檢查所有複選框,但是當我取消選中某些複選框並單擊提交時,我希望在頁面重新加載後查看帶有選中和未選中字段的全部列表(以前未選中)。是否可以將這個選項放在while語句中?

通常我會做這樣的事情:

if ($model == 'My model') { 
    echo ' checked'; 
    } else { 
    echo ''; 
} 

但在這種情況下,我不知道如何實現它。

回答

2

將所有選中的複選框的值放入一個數組中,讓它爲$available

現在遍歷查詢結果有些什麼這樣的 -

while ($row = mysql_fetch_assoc($query_model)) { 
    $checked = ''; 
    if(in_array($row['Model'], $available){ 
    $checked = 'checked'; 
    } 
    echo '<label class="checkbox"> 
       <input name="model[]" value="'.$row["Model"].'" type="checkbox" '.$checked.'>'.$row["Model"].' 
      </label>'; 
} 
+0

我只需將$ _GET分配給$可用並使用您的代碼即可 –

1

是的,你可以這樣做如下:

while ($row = mysql_fetch_assoc($query_model)) { 
    if($model == 'My model') { // your condition 
     $checked=' checked'; 
    } else { 
     $checked=''; 
    } 
    echo '<label class="checkbox">'; 
    echo ' 
    <input name="model[]" value="'.$row["Model"].'" type="checkbox"'. $checked .'>'.$row["Model"]; 
    echo '</label>'; 
} 
0

你可以嘗試像,

 if(isset($_POST['model'])) 
     { 
      while ($row = mysql_fetch_assoc($query_model)) 
      { 
       if(in_array($_POST,$row['Model']) 
        $checked="checked='checked'"; 
       else 
        $checked=""; 

       echo '<label class="checkbox"><input name="model[]" value="'.$row["Model"].'" type="checkbox" '.$checked.'>'.$row["Model"].'</label>'; 
      }    

     } 
     else{ 
      while ($row = mysql_fetch_assoc($query_model)) 
      { 
        echo '<label class="checkbox"><input name="model[]" value="'.$row["Model"].'" type="checkbox" checked>'.$row["Model"].'</label>'; 
      } 
     }