基本上我有一个我开始的表格。在该表单上是选择复选框的选项,一旦我单击该表单上的提交,信息将被读入数据库,并且关于是否已选中该复选框的条件现在在数据库中显示“0”或“1”。
现在我有一个编辑表格。我选择了要编辑的行,我的编辑表单将填充行中的内容。唯一没有出现的是,是否在第一个表单上“检查”了该行。如果用户选中了第一个表单和visversa上的复选框,我希望标记复选框。
对不起,如果这听起来像是一个糟糕的探索。
第一种形式的代码:
<form method="post" action="processForm.php">
Name: <input type="text" name="names" required = "required"><br>
Activate: <input type="checkbox" name="activateBox"><br>
<input type="submit" value="Create Users"><br>
</form>
编辑表单的代码:
<form method="post" action="editForm.php">
ID: <input type="text" readonly name="id" value="<?php echo $row['id']; ?>"><br><br>
First Name: <input type="text" name="firstName" value="<?php echo $row['firstName']; ?>"><br><br>
Last Name: <input type="text" name="lastName" value="<?php echo $row['lastName']; ?>"><br><br>
Email: <input type="text" name="email" value="<?php echo $row['email']; ?>"><br><br>
Activate: <input type="checkbox" name="activateBox" value="<?php echo $row['activated']; ?>"><br><br>
<input type="submit" value="Update"><br>
</form>
我试过这样做,但没有做任何事。我确定我错过了一些非常简单的东西,但我无法弄清楚是什么。
if (isset($_POST['activateBox'])) {
echo 'checked="checked"';
}
答案 0 :(得分:3)
checked
标记的<input type="checkbox">
属性应该有效。最有可能的是,当您加载编辑表单时,它是一个HTTP GET
请求,而不是POST
,因此$_POST['activateBox']
为空。
在任何情况下,从客户端读取编辑表单上的当前状态似乎是错误的。当前状态不应该来自数据库吗?
试试这个:
Activate: <input type="checkbox" name="activateBox"<?php if ($row['activated']) echo " checked"; ?>>
答案 1 :(得分:1)
Activate:
<input type="checkbox" name="activateBox"
<?php
if($row['activated']==1){
echo ' value="1" checked';
}else{
echo ' value="0";
?>
<br><br>