我有一个复选框列表,并将选中的值保存在数组中。但是,当有人点击“提交”并且他们收到错误时,他们所有的复选框都会被遗忘。通常我会让脚本记住带有像
这样的代码的复选框IF复选框值= OK {echo checked =“checked”}
但是,现在我将它保存在一个数组中,我不知道该怎么做?
<?php
$sql = "SELECT merknaam FROM merken";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo " <input type=\"checkbox\" name=\"merken[]\" value='" . $row['merknaam'] . "'> " . $row['merknaam'] . " <Br /> ";
}
?>
这是我用于复选框的代码。接下来,我使用以下代码显示数组:
$merkenstring = implode(",", $_POST['merken']);
echo $merkenstring;
结果:AC Ryan,Adidas,Agu,Cargo
我希望有人可以给我一个代码示例!
答案 0 :(得分:1)
假设您要将此内容发布到同一页面,并且$_POST['merken']
在发生错误后仍然可用,请使用in_array()
针对{{1}中的当前设置测试每个复选框的值}:
$_POST
如果将其发布到其他脚本,则(与返回到上一个脚本的任何帖子值一样)需要将数组存储在while ($row = mysql_fetch_array($result)) {
// If the current value is in the $_POST['merken'] array
// and the array has been initialized...
if (isset($_POST['merken']) && is_array($_POST['merken']) && in_array($row['merknaam'], $_POST['merken'])) {
// Set the $checked string
$checked = "checked='checked'";
}
// Otherwise $checked is an empty string
else $checked = "";
// And incorporate it into your <input> tag
echo " <input $checked type=\"checkbox\" name=\"merken[]\" value='" . $row['merknaam'] . "'> " . $row['merknaam'] . " <Br /> ";
//----------------------^^^^^^^^^^
}
中,并与$_SESSION
中的$_SESSION['merken']
进行比较1}}来电。
答案 1 :(得分:0)
假设$row['merknaam']
是复选框值,$_POST['merken']
包含已检查复选框值的数组,那么您只需要检查该值是否在数组中:
if (in_array($row['merknaam'], $_POST['merken'])) {
// this checkbox should be checked
}