我有一个代码:
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 '';
}
但在这种情况下我不知道如何实现它。
答案 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>';
}
}