如何使复选框动态(选中选项)


How to make checkboxes dynamic (checked option)

我有一个代码:

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 '';
}

但在这种情况下,我不知道如何实现它。

将所有选中复选框的值放在一个数组中,使其为$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>';
}

是的,您可以这样做:

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>';
}

你可以试试,

        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>';
             }
        }