我正在生成一个基于 HTML 表单中的 mysql 数据的 list 。单击提交按钮时,php 脚本会更改 mysql 数据库中的“完成”字段。如何使用长度可变的列表一次处理多个项目?目前,当我点击两个以上的框时,只有一个得到处理。
这是 HTML 表单:
<form method='post' action='listprocessor.php'>
<input style="float:right" type='checkbox' name='complete_goal' value='61'>Milk</input>
<input style="float:right" type='checkbox' name='complete_goal' value='117'>Eggs</input>
<input style="float:right" type='checkbox' name='complete_goal' value='118'>Bread</input>
<input style="float:right" type='submit' name='submitbtn' value='Completed'></input>
</form>
这是简化的 php:
$_POST['submitbtn'];
$completed_goal = $_POST['complete_goal'];
$query = mysql_query("UPDATE notes SET complete='1' where note_id='$completed_goal'");
最佳答案
您的输入元素名称应该是一个数组,例如complete_goal[]
.
<input style="float: right;" type="checkbox" name="complete_goal[]" value="61">Milk</input>
您可以使用 WHERE note_id IN (<?php echo implode( ',', $_POST['completed_goal'] ); ?>)
在单个查询中更新它们.
$query = mysql_query( "UPDATE `notes` SET `complete` = '1' WHERE `note_id` IN (" . implode( ',', $_POST['completed_goal'] ) . ")" );
关于php - 用 PHP 处理 HTML 复选框表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8813386/