Как выделить чекбокс переменных результатов, выводимых в то время как l oop в PHP? - PullRequest
2 голосов
/ 03 февраля 2020

Я пытаюсь написать систему посещаемости, чтобы, когда пользователь присутствует в классе, сотрудники отметили флажок, а затем программа добавила его к текущему количеству соответствующих клиентов. Проблема состоит в том, чтобы вывести регистр, взятый из phpMyAdmin, он использует while l oop, поэтому все флажки имеют одинаковое имя переменной. Это код, который у меня есть до сих пор ...

echo "<form 'action=badminreg.inc.php' method='post'>";
      while ($row = mysqli_fetch_assoc($result)) {
        echo "<tr><td>".$row['bookingID']."</td><td>".$row['firstName']."</td><td>".$row['surname']."</td><td><input type='checkbox' name='present' value='present'</td><td><input type='checkbox' name='incident' value='incident'</td></tr>";
      }

      echo "<input type='submit' name='reg-submit'>";
      echo "</form>";
      isset($_POST['reg-submit']);
      $pres = $_POST['present'];

Мне нужно отделить входные данные флажка, чтобы программа могла пометить отдельных пользователей по-разному для других. Я новичок в PHP, так как это для моей курсовой работы уровня A, так есть ли способ обойти это? Любая помощь будет отличной. Спасибо

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Если вы измените его на name='present[]', то при повторной отправке данных вы получите массив значений внутри $_POST["present"] вместо одного. (Вы получите по одному элементу в массиве для каждого флажка с тем именем, которое на самом деле было проверено - причудой HTML формы является то, что если флажок не установлен, его значение вообще не передается).

Вы также захотите поменять value флажка на идентификатор клиента (или, возможно, бронирования), чтобы вы могли определить, какой флажок был установлен.

То же конечно же, для флажка «инцидент».

Итак, вы стремитесь к чему-то вроде этого, я думаю:

echo "<tr>
  <td>".$row['bookingID']."</td>
  <td>".$row['firstName']."</td>
  <td>".$row['surname']."</td>
  <td><input type='checkbox' name='present[]' value='".$row['bookingID']."'</td>
  <td><input type='checkbox' name='incident[]' value='".$row['bookingID']."'</td>
</tr>";
1 голос
/ 03 февраля 2020

Вы можете определить имя для элементов флажка как массив и передать значение bookingID в качестве значения.

Пример (не проверено):

$output = "<tr><td>{$row['bookingID']}</td><td>{$row['firstName']}</td><td>{$row['surname']}</td><td><input type='checkbox' name='present[]' value='{$row['bookingID']}'</td><td><input type='checkbox' name='incident[]' value='{$row['bookingID']}'</td></tr>";

Переменные $_POST['present'] и * Затем 1008 * содержит массив с идентификаторами выбранных флажков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...