我有一个带有复选框的while循环生成信息,我想用新的“completed”值更新数据库。如何选择生成的特定复选框。请帮我们告诉我如何获取复选框和task_name的具体值。
谢谢,Ryan
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;
答案 0 :(得分:0)
您需要使用行的唯一名称命名输入,例如task_name或更好的数据库记录ID。
然后,当用户提交表单时,您将使用$ _POST [“YourTaskNameOrIDHere”]来检查该值。
您目前所有的复选框都调用相同的内容。
<input type="hidden" value="$task_name" name="TaskName" />
,因此您可以查看该复选框对应的内容。然后,当用户提交表单时,使用$ _POST [“TaskName”]找出任务的名称。
答案 1 :(得分: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_*
}