我有用户标题,以这种方式存储在数据库中。 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/>
答案 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/>';
}
?>