检查是否选中了复选框

时间:2015-04-14 10:07:26

标签: php mysql checkbox

我有用户标题,以这种方式存储在数据库中。 1,2,6,10等 我想检查用户是否已经拥有此标题,如果有,请检查复选框。

<?php
    $user_titles = explode(',', $user['titles']);
    //foreach($user_titles as $uTitles){
        //echo $uTitles;
    //}
?>
<input type="checkbox" name="title[]" value="1">Test1<br/>
<input type="checkbox" name="title[]" value="2">Test2<br/>
<input type="checkbox" name="title[]" value="3">Test3<br/>

3 个答案:

答案 0 :(得分:0)

您需要将checked属性添加到已选中的属性中。

<input type="checkbox" name="title[]" value="1" <?php if(in_array(1, $user_titles) echo 'checked="checked"'; ?>>Test1<br/>

答案 1 :(得分:0)

如果我理解正确,您将值存储为以逗号分隔的字符串。

使用迭代方法,例如:

<?php $checked = ''; ?>
<?php for($i = 1; $i <= count($posibble_checkbox); $i++ ) { 
  if(in_array($user_titles, $i ) ) { $checked = 'checked'; } else {$checked = '' }
?>
  <input type="checkbox" value="<?php echo $i; ?>" name="title[]" <?php echo $checked; ?> />  
<?php } ?>

希望它有所帮助。

答案 2 :(得分:0)

将标题移动到新数组并迭代它们。在循环内部,检查值是否在$ user titles数组中,并将'checked'添加到输入标记。

<?php
$titles = [
    1 => "Test1",
    2 => "Test2",
    3 => "Test3",
];

foreach ($titles as $value => $title) {
    $checked = in_array($value, $user_titles) ? 'checked' : '';
    echo '<input type="checkbox" name="title[]" value="' . $value . '" ' . $checked . '>' . $title . '<br/>';
}
?>