【问题标题】:Dynamic checkboxes with the help of PHP借助 PHP 的动态复选框
【发布时间】:2014-12-05 16:26:38
【问题描述】:

我正在检查数据库,如果匹配特定字符串,则会检查相应的 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();
?>

【问题讨论】:

  • 显示这个while的输出,检查你的数据库记录。
  • 我输出一个未选中的复选框,然后是板球和一个选中的复选框,然后是板球
  • u_mulder的意思我猜是$row['spr']的示例内容
  • 我的数据库中只有一行在 spr 列中包含 Cricket
  • 你得到的输出 Html 是什么?

标签: php html checkbox


【解决方案1】:
<input type="checkbox" value="<?php echo $row['spr']; ?>" <?php if(in_array("Cricket",$focus)) { ?> checked="checked" <?php } ?> name="focus[]" />Cricket

我希望这会正常工作。如果它不起作用,请告诉我。

【讨论】:

  • 我试过你的答案,但仍然是同一个问题,一个未选中,另一个选中复选框
  • 请检查结果数组是否也有重复条目。
  • 明白了,mysqli_fetch_assoc($result)
  • 实际上 mysqli_fetch_array 将返回 bot 关联和索引结果数组,因此如果结果行号为 1,它将返回 2. 1 用于关联元素,另一个用于索引元素。这是你的实际问题。
  • 但他只是检查$row['spr'],而不是for ($x in $row)...,尽管我同意mysqli_fetch_assoc 可能更有效
【解决方案2】:
 <?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();

?>

【讨论】:

  • 还是同样的问题 :-(
  • 我可以知道你数据库中的字符串
  • 我在 spr 中的字符串是 Cricket
  • 所以不需要分解字符串 "$focus=explode(",",$row['spr']); if(in_array("Cricket",$focus))" 而不是这些只尝试“if($row['spr']=='Cricket')”
【解决方案3】:

您的输入复选框在您的 while 循环内,这意味着如果数据库中有 2 行,则将有 2 个输入框。

根据您的 SQL 语句,您正在选择所有记录(没有 WHERE 语句)。所以如果你的表格有10行,就会有10个输入框。确保您只选择您需要的行。

【讨论】:

  • 根据您的建议,我尝试在数据库中添加另一个产品并在执行上述代码时得到 4 个复选框,其中 2 个未选中,2 个已选中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2011-03-13
  • 2020-01-30
相关资源
最近更新 更多