前传元素保留元素的最后一个值

时间:2019-04-01 03:06:26

标签: php html

我想获得在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"]);
}

1 个答案:

答案 0 :(得分:0)

尽管您正在回显唯一的值,但是分配给表单隐藏字段(reqId和reqStatus)的值在foreach循环中被新值覆盖。在foreach循环结束时,只有最后一个值保存在这些隐藏字段中。