使用PHP处理HTML复选框表单 [英] Processing HTML checkbox forms with PHP
问题描述
我正在基于HTML格式的mysql数据生成清单.单击提交按钮后,PHP脚本将更改mysql数据库中的完成"字段.如何使用长度可变的列表一次处理多个项目?当前,当我单击两个以上的框时,只有一个被处理.
I am generating a checklist based on mysql data in an HTML form. When the submit button is clicked the php script changes the "complete" field in the mysql database. How can I process more than one item at a time with lists that have variable lengths? Currently when I click more than two boxes, only one gets processed.
这是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[]
.
Your input element name should be an array, such as 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'] ); ?>)
在单个查询中全部更新它们.
You can update them all in a single query using a 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处理HTML复选框表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!