我有一个while循环,带有一个复选框,用于生成信息,我想用新的“ completed”值更新数据库。 如何选择生成的特定复选框。 请帮助我展示如何获取复选框和task_name的特定值。

谢谢,瑞安

    while ($row = mysql_fetch_array($query)){
        $task_name = $row['task_name'] ;
        $task_description = $row['task_description'];
        $task_completed = $row['completed'];
        $tasks .= '<div id="tasksBody">
                    <form action="" method="post">Completed? <input name="completed" type="checkbox" '.
                    ($task_completed == 1?'checked="checked"':'').
                    ' /><input type="submit" value="Update"><br /><br />
                    <b>'.$task_name.'</b><br /><br />'.$task_description.'<hr><br /></form></div>';
        }
}
echo $tasks;

===============>>#1 票数:0

您需要使用该行的唯一名称来命名输入,例如task_name或更佳的数据库记录ID。

然后,当用户提交表单时,您将使用$ _POST [“ YourTaskNameOrIDHere”]检查该值。

您当前将所有复选框称为同一件事。


编辑:对不起,您正在以自己的方式隔离所有这些内容,我才意识到这一点。 您可以添加的是<input type="hidden" value="$task_name" name="TaskName" /><input type="hidden" value="$task_name" name="TaskName" /> ,因此您可以查看复选框所对应的内容。 然后,当用户提交表单时,使用$ _POST [“ TaskName”]查找任务的名称。

===============>>#2 票数:0

向每个包含task_id表单添加一个隐藏字段

<form action="" method="post">
    Completed? 
    <input name="completed" type="checkbox" <?=($task_completed == 1?'checked="checked"':'')?> value="1" />
    ...
    <input name="task_id" value="<?=$task_id"?> type="hidden" />**strong text**
</form>

提交后:

if (isset($_POST['task_id']) { // form has been submitted

    $task_id = $_POST['task_id'];
    $completed = $_POST['completed'];

    $sql = "UPDATE task SET task_completed=$completed WHERE task_id=$task_id LIMIT 1";
    // code for updating database
    // better use PDO or mysqli-* instead of old and deprecated mysql_*
}

  ask by Ryan translate from so

未解决问题?本站智能推荐: