выберите один переключатель из каждой строки и затем отправьте его в базу данных mysqli

    <?php
    include('connect.php');
    $query=mysqli_query($conn,"select * from users") or die("unable to connect");

    ?>
    <html>
    <head>
    </head>
        <body>


            <h2 align="center"> student list</h2>
            <form action="radio.php" method="post"> 
            <table align="center" border="1" cellspacing="0" cellpadding="0" width="700">
                <thread>
                    <td align='center'>id</td>
                    <td align='center'>enrolloment_no</td>
                    <td align='center'>first_name</td>
                    <td align='center'>last_name</td>
                    <td align='center'>attendance&nbsp;&nbsp;&nbsp;</td>

                        </thread>

            <?php
                $i=1;
                while($row=mysqli_fetch_array($query,MYSQLI_BOTH))
                    {
                    echo "<tr>
                    <td align='center'>".@$i."</td>

<td align='center'>".@$row['enrolloment_no']."</td>
<td align='center'>".@$row['first_name']."</td>
<td align='center'>".@$row['last_name']."</td>
<td align='center'>


<input type="radio" name="a" value="present">present

<input type="radio" name="a" value="absent">absent

</tr>

";
            $i++;
                        }   

                ?>

                </table>
                <input type="submit" value="submit">
                        </form>
                </body>



        </html>

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

1 ответ

  1. Вы можете создать число, увеличивающееся на каждую строку, или лучше установить это целое число равным соответствующему идентификатору строки в вашей базе данных.

    Добавьте скрытые входные данные с именем= «rowIDs []» & value= » {theIdentifier}».

    Когда вы устанавливаете имя переключателя вашей строки в » a_{theIdentifier}», вы можете запустить foreach в вашем PHP скрипте.

    может быть, это то, что вы ищете?

    глобальный пример в коде:

     $i=1;
        while($row=mysqli_fetch_array($query,MYSQLI_BOTH)){
           echo "<tr>
           <td align='center'>".@$i."</td>
           <td align='center'>".@$row['enrolloment_no']."</td>
           <td align='center'>".@$row['first_name']."</td>
           <td align='center'>".@$row['last_name']."</td>
           <td align='center'>
             <input type=\"hidden\" value=\"".$row['enrolloment_no']."\" name=\"rowIDs[]\" />
             <input type=\"radio\" name=\"a_".$row['enrolloment_no']."\" value=\"present\">present
             <input type=\"radio\" name=\"a_".$row['enrolloment_no']."\" value=\"absent\">absent
           </td>
           </tr>
           ";
           $i++;
       } 
    

    Теперь в представлении:

    $rowIDs = $_POST['rowIDs'];
    foreach($rowIDs as $rowID) {
       $radioButtonValue = $_POST['a_'.$rowID];
       mysqli_query("update `yourtable` SET `attendance` = '".$radioButtonValue."' WHERE `enrolloment_no` = '".$rowID."'");
    }
    

    (для этого замените $i на $row [‘enrolloment_no’])

    ps Я сделал несколько ошибок, которые я только что отредактировал.

    При добавлении этих входных данных в верхней или нижней части формы.. но в форме теги
    Настоящее
    Отсутствует
    Использование мастер-посещаемости
    Затем в части отправки php:

    if(isset($_POST['useMasterAttendance'])) {
      $masterAttendanceValue = $_POST["masterAttendance"];
      $rowIDs = $_POST['rowIDs'];
      foreach($rowIDs as $rowID) {
    
         mysqli_query("update `yourtable` SET `attendance` = '".$masterAttendanceValue."' WHERE `enrolloment_no` = '".$rowID."'");
      }
    }else {
    //DO THE CODE FOR EACH ROW LIKE ABOVE
    }
    

    Извините, если я сделал какие-либо опечатки