在 PHP 的帮助下的动态复选框


Dynamic checkboxes with the help of PHP

我正在检查数据库,如果匹配特定字符串,则会检查相应的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 个输入框。确保只选择所需的行。