复选框值匹配,但现在显示已选中复选框

时间:2013-05-29 08:58:41

标签: php if-statement checkbox

我的代码有问题:

if($q_ccd_chk == 'on')
{
    if($q_front == 1)
    {
        echo '<input type="checkbox" name="front" value="1" checked/> Front';
    }
    if($q_back == 1)
    {
        echo '<input type="checkbox" name="back" value="1" checked/> Back';
    }
    if($q_fb == 1)
    {
        echo '<input type="checkbox" name="fb" value="1" checked/> FB';
    }
}
else
{
    echo '<input type="checkbox" name="front" value="1"/> Front';
    echo '<input type="checkbox" name="back" value="1"/> Back';
    echo '<input type="checkbox" name="fb" value="1"/> FB';
}

如果值复选框的前后值匹配,则会显示复选框并选中。但是如果复选框值的3匹配,则不显示所有复选框的显示。

2 个答案:

答案 0 :(得分:0)

您只检查$q_ccd_chk是否已启用。如果不是,则显示所有未经检查的值。在完成此操作之前,您应该检查它们。如果$q_ccd_chk已启用但其他3未启用。它根本没有显示复选框......

答案 1 :(得分:0)

你得到了什么:

$checkedfront = "";
$checkedback  = ""; 
$checkedfb    = ""; 

if($q_ccd_chk == 'on')
{
    if($q_front == 1) { $checkedfront = " checked";}
    if($q_back  == 1) { $checkedback  = " checked";}
    if($q_fb    == 1) { $checkedfb    = " checked";}
}

    echo "<input type=\"checkbox\" name=\"front\" value=\"1\"".$checkedfront." /> Front\n";
    echo "<input type=\"checkbox\" name=\"back\" value=\"1\"".$checkedback." /> Back\n";
    echo "<input type=\"checkbox\" name=\"fb\" value=\"1\"".$checkedfb." /> FB\n";