Как установить переключатели для записи посещаемости PHP CSS?

#php #html #css #styles #structure

#php #HTML #css #стили #структура

Вопрос:

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

 echo '<table action="process.php" method="POST" class="tableEchoPupilAttendance" border="1">
    <tr>
        <th>Image</th>
        <th>Name</th>
        <th>Present</th>
        <th>Absent</th>
        <th>Authorise</th>
    </tr>';

while($row = mysqli_fetch_array($result))
{
    echo "<tr>
        <td><img width='70' height='60' src='data:image/jpeg;base64,".base64_encode($row['image'])."'/></td>
        <td>" .$row['name']. $row['surname']."</td>
        <td> <input type='radio' name='present' value=''/>  </td>
        <td> <input type='radio' name='absent' value=''/>  </td>
        <td> <input type='radio' name='late' value=''/>  </td>
    </tr>";
}

echo "</table>";
  

Ответ №1:

Переключатели сгруппированы по name атрибуту. Чтобы можно было выбрать только одну из трех переключателей в каждой строке, их name s должны быть одинаковыми, а их желаемые значения должны храниться в value атрибуте.

Я думаю, справедливо предположить, что у вас есть id какой-то вид в ваших строках результатов. Поэтому следующий код может работать:

 while ($row = mysqli_fetch_array($result)) {
    ?>
    <td><input type="radio" name="att[<?=$row['id'];?>]" value="present" /><td>
    <td><input type="radio" name="att[<?=$row['id'];?>]" value="absent" /><td>
    <td><input type="radio" name="att[<?=$row['id'];?>]" value="late" /><td>
    <?
}
  

Отправив это, вы получите массив с таким содержимым, как это:

 [1] => 'present',
[3] => 'absent',
[4] => 'present',
[6] => 'late'
  

Использование числовых значений обычно является хорошей идеей, однако код не будет таким читаемым.

Ответ №2:

Переключатели группируются, только если они имеют одинаковое имя. Итак, что вы хотите сделать, это:

 <td> <input type='radio' name='attendance[<?php print $row['id']; ?>]' value='present'/>  </td>
<td> <input type='radio' name='attendance[<?php print $row['id']; ?>]' value='absent'/>  </td>
<td> <input type='radio' name='attendance[<?php print $row['id']; ?>]' value='late'/>  </td>
  

Комментарии:

1. Это будет работать только тогда, когда есть только одна строка данных.