Как добавить несколько флажков в PHP и mysql с разными идентификаторами пользователя - PullRequest
0 голосов
/ 18 марта 2020

Я разрабатываю платформу, которая позволяет мне вводить присутствие на мероприятии, и я застрял в одном месте. Как я могу загрузить серию флажков, чтобы изменить идентификатор пользователя для каждого элемента?

Практический пример, у меня есть таблица, содержащая имена всех людей, и рядом с ней стоит флажок, после того как нажата кнопка отправки php должна загрузить данные для каждого пользователя в базу данных.

Ниже формы html и сценария php, который управляет загрузкой в ​​базу данных.

'' 'php

<?php
                    $query = "SELECT * FROM utenti";
                    $ris = mysqli_query($conn, $query);
                    //$dati = mysqli_fetch_array($ris);
                    while($row = mysqli_fetch_assoc($ris)){
                        echo "<tr><td>".$row['nome']."</td>";
                        echo "<td>".$row['cognome']."</td>";
                        echo "<td>".$row['squadra']."</td>";
                        echo "<td>
                        <input type='checkbox' name='presenza' data-toggle='toggle' data-onstyle='success' data-offstyle='danger' data-on='Presente' data-off='Assente' value='1'>
                        </td></tr>";
                    }

' ''

if (isset($_POST['submit'])){
    if(!empty($_POST['presenza'])){
        // Loop to store and display values of individual checked checkbox.
        foreach($_POST['presenza'] as $selected){
        echo $selected."</br>";
        $sql="INSERT INTO presenze(id_utente,settimana,presenza) VALUES ('1','1','$selected')";
        if(mysqli_query($conn, $sql)){
            echo "Records added successfully.";
        } else{
            echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
        }
        }
        }
}

'' '

1 Ответ

0 голосов
/ 19 марта 2020

Один из способов получить связь между пользователем и флажком - это использовать идентификатор пользователя (или любой другой уникальный идентификатор, который у вас есть в структуре таблиц) в имени флажка, например:

"<input type='checkbox' name='presenza_" . $row['user_id'] . "'>"

Затем на backend вы можете перебирать все пост-параметры с префиксом presenza_ и получать из него идентификатор пользователя.

Так что ваш код будет немного более сложным:

foreach($_POST as $param_key) {
  // working only with params started with presenza_
  if (0 !== strpos($param_key, "presenza_")) { 
    continue;
  }

  $presenza_parts = explode("_", $param_key);
  $user_id = (int)$presenza_parts[1];
}

Имейте в виду, что флажок поле отправляет только значение, если оно switched on, и ничего не отправляет, если оно switched off.

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