我是php的新手......我一直在以动态复选框的方式对抗,如果没有检查表单是返回,我还需要保留由于其他无效输入而在表单回发时检查的内容。
$result = mysql_query("SELECT * FROM course") or die(mysql_error());
if ($result)
{
while ($row = mysql_fetch_array($result)){
if (isset($_POST['courses']) and $_POST['courses'] == $row['cid']) {echo $row['cid'];}
print "<input type=\"checkbox\" name=\"courses[]\" value=\"$row[cid]\">$row[cname]\n";
}
}
纯粹在php代码上需要帮助。提前致谢
答案 0 :(得分:0)
在php页面上的HTML中出现复选框时执行此操作:
<?php
$checked = isset($_POST["checkboxname"]) ? " checked" : '' ;
echo "<input type='checkbox' name='checkboxname' value='yes'" . $checked . ">";
?>
这将在表单发布后保留复选框状态。
更新:
对于你的代码,我想这就是这样做的:
$result = mysql_query("SELECT * FROM course") or die(mysql_error());
if ($result) {
while ($row = mysql_fetch_array($result)) {
$checked = '';
/* ERROR: if (isset($_POST['courses']) and $_POST['courses'] == $row['cid']) { */
if (isset($_POST['courses']) {
if (in_array($row['cid'], $_POST['courses']) {
echo $row['cid'];
$checked = " checked";
}
}
echo "<input type=\"checkbox\" name=\"courses[]\" value=\"$row[cid]\"" . $checked . ">$row['cname']\n";
}
}
编辑:我认为,条件也需要改变,正如我在上面的代码中所示。