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

时间:2013-11-27 09:45:47

标签: php mysql checkbox

我有一个代码:

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

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

3 个答案:

答案 0 :(得分: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>';
}

答案 1 :(得分: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>';
}

答案 2 :(得分: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>';
             }
        }