当我们以编辑形式从数据库中检索数据时,我想要检查复选框

时间:2015-07-02 03:19:39

标签: php checkbox

<?php
    $a=array('Cricket','Reading','Travelling','Swimming','Badminton');$hb=explode(" ",$row['hobby']);
?>
    Hobbies:<input type="checkbox" name="chk[]" value="Cricket"<?php if(in_array('Cricket',$hb)){echo 'checked="checked"'; }?> />Cricket
            <input type="checkbox" name="chk[]" value="Reading" <?php if(in_array('Reading',$hb)) { echo 'checked="checked"'; }?> />Reading
            <input type="checkbox" name="chk[]" value="Travelling" <?php if(in_array('Travelling',$hb)) { echo 'checked="checked"'; }?> />Travelling
            <input type="checkbox" name="chk[]" value="Swimming" <?php if(in_array('Swimming',$hb)) { echo 'checked="checked"'; }?> />Swimming
            <input type="checkbox" name="chk[]" value="Badminton" <?php if(in_array('Badminton',$hb)) { echo 'checked="checked"'; }?> />Badminton

2 个答案:

答案 0 :(得分:1)

以下代码将完成您要执行的操作。我有一个测试用例,提供数据源中的“行”。这将设置所有选项(您可能希望从数据源获取),迭代这些选项,验证它们是否在数组中,并根据需要添加检查字段。这也显示了HTML和PHP之间的明显区别,以供将来审核代码的开发人员使用。

<?php

    // Test Case
    $row['hobby'] = 'Cricket Travelling';

    // Logic
    $formHTML = "";
    $options = array('Cricket','Reading','Travelling','Swimming','Badminton');

    $selectedHobbies = explode(" ",$row['hobby']);
    foreach($options as $option){
        $checked = (in_array($option, $selectedHobbies)) ? "checked=checked" : "";
        $formHTML .= <<<HTML
<input type="checkbox" name="chk[]" value="{$option}" {$checked} />{$option}
HTML;

    }

?>

<html>
<head>

</head>
<body>
    Hobbies: 
    <?php echo $formHTML; ?>
</body>
</html>

答案 1 :(得分:0)

嗯,有趣的是,我假设你已经使用php获取数据..然后在像<?php echo.....the row, the checkbox, then add the keyword 'checked' ?>这样的php中标记它,这样它就会被自动检查。