Foreach через элементы сохраняет последнее значение элемента

Я хотел бы получить значение того, что я повторил в значении элемента HTML, но я использовал foreach, поэтому он сохраняет только последнее значение последнего цикла. Я бы обновил reqStatus в зависимости от его идентификатора с помощью почтового метода для передачи переменных.

HTML с foreach:

<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"]);
}
foreach, поэтому он сохраняет только последнее значение последнего цикла. Вы повторяете значения. Все они должны быть видны. Не уверен, что понимаю вопрос. Вы убедились, что массив содержит то, что, по вашему мнению, он должен?
Andreas 01.04.2019 05:14

ваша проблема в том, что у вас есть n число name = "reqIDUpdate", и, поскольку все они имеют одинаковую форму, последнее перезаписывает все предыдущие значения. У вас есть несколько вариантов, некоторые из которых включают в себя: наличие каждой строки в своей собственной форме; используйте javascript, чтобы отключить все другие входы, кроме соседнего/родного элемента нажатой кнопки;

Sean 01.04.2019 06:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
235
1

Ответы 1

Хотя вы повторяете уникальные значения, значение, которое присваивается скрытым полям формы (reqId и reqStatus), перезаписывается новыми значениями в цикле foreach. К концу цикла foreach в этих скрытых полях сохраняются только последние значения.

Другие вопросы по теме