如何在编辑表单中显示支票?

时间:2016-01-21 17:46:59

标签: php forms checkbox

基本上我有一个我开始的表格。在该表单上是选择复选框的选项,一旦我单击该表单上的提交,信息将被读入数据库,并且关于是否已选中该复选框的条件现在在数据库中显示“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"';
}

2 个答案:

答案 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>