#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. Это будет работать только тогда, когда есть только одна строка данных.