我正在检查数据库,如果匹配特定字符串,则会检查相应的checkbox
,但错误是每当匹配字符串时,我都会检查两个checkboxes
,一个unchecked
,另一个checked
。
这是我的代码:
<?php
$result = mysqli_query($sql,"SELECT * FROM grsi ");
while($row = mysqli_fetch_array($result))
{
$focus=explode(",",$row['spr']);
?>
<input type="checkbox" value=<?php echo $row['spr']; if(in_array("Cricket",$focus)) { ?> checked="checked" <?php } ?> name="focus[]" />Cricket
<?php
}
exit();
?>
<input type="checkbox" value="<?php echo $row['spr']; ?>" <?php if(in_array("Cricket",$focus)) { ?> checked="checked" <?php } ?> name="focus[]" />Cricket
我希望这将正常工作。如果它不起作用,请告诉我。
<?php
$result = mysqli_query($sql,"SELECT * FROM grsi ");
while($row = mysqli_fetch_array($result))
{
$focus=explode(",",$row['spr']);
if(in_array("Cricket",$focus)) {
?>
<input type="checkbox" value=<?php echo $row['spr']; ?> checked="checked" name="focus[]" />Cricket
<?php
}else{
?>
<input type="checkbox" value=<?php echo $row['spr']; ?> name="focus[]" />Checkbox name
<?php
}
}
exit();
?>
您的输入复选框位于 while 循环中,这意味着如果数据库中有 2 行,则将有 2 个输入框。
并且基于您的SQL语句,您正在选择所有记录(没有WHERE语句)。因此,如果您的表中有 10 行,则将有 10 个输入框。确保只选择所需的行。