Bvivg
@Bvivg

Как выбрать много пользователей через чекбоксы и выполнить sql запрос?

в общем у меня есть таблица куда через цикл for each выводятся пользователи так же там есть чекбоксы где в value id пользователей затем при нажатии добавить тест выходит модалка куда через js выводятся id выбранных пользователей , т.е эта часть с id уже работает, так вот мне надо взять их id через php условие и добавить в таблицу available tests id юзеров и самого теста тест есть в выпадашке

<?php if (isset($users) && is_array($users)) : ?>
              <?php foreach ($users as $user) : ?>
                <tr>
                  <th scope="row" class="applications-table__info"><?php echo $user['id']; ?></th>

                  <td>
                    <input type="checkbox" class="selectSingle" name="selected_users[]" value="<?php echo $user['id']; ?>" data-user-id="<?php echo $user['id']; ?>">
                  </td>

                  <td class="applications-table__info"><?php echo $user['name']; ?></td>
                  <td class="applications-table__info"><?php echo $user['surname']; ?></td>
                  <td class="applications-table__info"><?php echo $user['email']; ?></td>
                  <td class="applications-table__info"><?php echo $user['pin']; ?></td>
                  <td class="applications-table__info"><?php echo $user['birthdate']; ?></td>
                  <td class="applications-table__info"><?php echo $user['region']; ?></td>
                  <td class="applications-table__info"><?php echo $user['district']; ?></td>
                  <td class="applications-table__info"><?php echo $user['school']; ?></td>
                  <td class="applications-table__info"><?php echo $user['grade']; ?></td>

                </tr>
              <?php endforeach; ?>
            <?php endif; ?>
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Оборачиваете html-таблицу в форму, с кнопочкой сабмита. Когда отметили нужное, пользователь должен засабмитить форму. В форме нужно указать метод передачи GET или POST и адрес, где будет располагаться серверный скрипт обработки формы.
В скрипте примерно такой код:
<?php
// считаем, что данные пришли по POST-у
if(isset($_POST['submit'])) // проверяем, что приехали данные формы по submit, в кнопке сабмита атрибут name должен иметь значение submit
{
   $inserted_user_count = 0;
   if(isset($_POST['selected_users'])) // присутствуют отмеченные пользователи
   {
      $pdo = new PDO(параметры подключения к базе);
      foreach($_POST['selected_users'] as $selected_user_id)
      {
        $stmt = $pdo->prepare('insert into ваша таблица (атрибуты таблицы) values (значения атрибутов таблицы, кроме user_id, :user_id)');
        $stmt->bindParam(':user_id', $selected_user_id, PDO::PARAM_INT);
        // еще байндим какие-то параметры у запроса, если есть плейсхолдеры, кроме :user_id.
        $stmt->execute(); // наконец, выполняем запрос
        $pdo->commit(); // фиксируем изменения в базе данных, если у вас соединение открыто не в режиме автокамита
        $inserted_user_count++;
      }
      $pdo = null; // закрываем соединение с базой
   }
   echo 'Обработано пользователей: '.$inserted_user_count;
}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы