检查复选框是否被选中

Check if checkbox is checked

我有用户名,是这样存储在数据库中的。 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/>

勾选的需要添加checked属性。

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

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

使用迭代法,例如:

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

希望对您有所帮助。

将标题移动到新数组并遍历它们。在循环内,检查值是否在 $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/>';
}
?>