我正在尝试编写可以更新表中记录的代码。我有一个带有两个复选框的表单,名为“已修复”,使用的格式为:
<input name="repaired[]" type="checkbox" id="repaired" value="1" />当表单加载时,它可以逐行包含任意数量的记录,并且每行都有一个“隐藏”表单字段,其中包含该记录的unquieid。
如果用户通过选择“腐蚀”复选框来选择任何记录,然后提交我需要循环遍历每条选定记录并更新表的表单。
我的表格代码:
<form id="form1" name="form1" method="post" action="<?php echo $editFormAction;?>">
<?php
do {
echo $row_Faults['SeqID'];
echo $row_Faults['SeqHeader'];
echo $row_Faults['Room'];
<input name="repaired[]" type="checkbox" id="repaired" value="1" />
<input name="UniqueID" type="hidden" value="<?php echo $row_Faults['UniqueID'];?>" />
} while ($row_Faults = mysql_fetch_assoc($Faults));
?>
<input type="image" src="../images/actioned_button.png" name="button" id="button" value="1" />
<input name="MM_update" type="hidden" value="form1" />
<input name="submit" type="hidden" value="submit" />
</form>
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
if(!empty($_POST['UniqueID']) && $_POST['repaired'] == "1"){
foreach($_POST['repaired'] as $Selected){
//THIS IS WHERE I AM STUCK
UPDATE QUERY.......
}
}
}这就是我陷入困境的地方,我如何循环遍历$_POST数据并更新"UniqueID“匹配$_POST'UniqueID‘以及如果$_POST’修复‘== 1匹配的记录。
任何帮助或指点我需要做的事都会很棒,
非常感谢您的时间。
发布于 2017-01-14 20:12:45
您的代码很少有问题,例如:
do-while循环将抛出未定义的变量$row_Faults错误,这是因为它是稍后在while(...);语句中定义的。在本例中,需要使用一个简单的while()循环,如下所示:
时间($row_Faults = mysql_fetch_assoc($Faults)){ .}
另外,您不能像这样在PHP中使用修复和UniqueID <input> HTML元素,它会引发其他错误。<input>元素,您也可以将其合并到复选框输入元素中,如下所示:
因此,基于以上两点,将do-while循环替换为下面的while循环。
而($row_Faults = mysql_fetch_assoc($Faults)){ echo $row_Faults‘’SeqID‘;echo $row_Faults’‘SeqHeader’;echo $row_Faults‘’Room‘;?> image输入元素,因此没有必要使用单独的hidden提交元素。所以你可以完全删除下面一行,
因此,一旦提交了表单,就可以处理表单并更新相应的检查行,
if (isset( $_POST"MM_update“) &$_POST”MM_update“== "form1"){ foreach($_POST‘isset’as $uniqueID => $repairedValue){ // $_POST UPDATE查询}Sidenote:不使用mysql_*函数,它们在PHP5.5中被取消,并且在PHP7.0中被完全删除。使用mysqli或pdo代替。functions。
https://stackoverflow.com/questions/41654234
复制相似问题