我想获得在HTML元素的值中所回显的值,但是我使用了foreach,因此它仅保留了上一个循环的最后一个值。我会通过post方法根据其ID更新reqStatus来传递变量。
带有foreach的HTML:
<form method = "POST" action="">
<table>
<th> Request ID:</th>
<th> Request Status:</th>
<?php
$requests = new OrderRequests();
$requests->getAllOrders();
foreach($requests->orderList as $oList){?>
<tr>
<td>
<input type="hidden" name="reqId" value="<?php echo $oList["request_id"];?>"><?php echo $oList["request_id"];?>
</td>
<td>
<input type="hidden" name ="reqStatus" value="<?php echo $oList["request_status"];?> "><?php echo $oList["request_status"];?>
</td>
<?php if($oList["request_status"]=="Delivered"){?>
<input type="hidden" id="reqIDUpdate" name="reqIDUpdate" value ="<?php echo $oList["request_id"];?>">
<td>
<input type="submit" class="button" value="Confirm Delivery">
</td>
<?php }}?>
</tr>
</table>
</form>
开机自检后:
if (!empty($_POST["reqIDUpdate"])){
$requestIDUpdate = $_POST["reqIDUpdate"];
global $connection;
$sql = "UPDATE order_request SET request_status = 'Received Delivery'
WHERE request_id = {$requestIDUpdate} ";
mysqli_query($connection, $sql);
unset($_POST["reqIDUpdate"]);
}
答案 0 :(得分:0)
尽管您正在回显唯一的值,但是分配给表单隐藏字段(reqId和reqStatus)的值在foreach循环中被新值覆盖。在foreach循环结束时,只有最后一个值保存在这些隐藏字段中。