Php 如何设置考勤记录的单选按钮?

Php 如何设置考勤记录的单选按钮?,php,html,css,styles,structure,Php,Html,Css,Styles,Structure,我想创建一个出勤记录表单,老师可以在其中记录学生的出勤情况,并将其发送到数据库进行存储。在这里,我使用单选按钮,我希望这些按钮只能选择“出席”、“缺席”或“授权”,但现在它并没有实现我想要做的事情。现在单选按钮的选择不正常,所以请您让我以特定的方式放置单选按钮,以便它仅选择“出席”、“缺席”或“授权”。我认为我们必须使用CSS或javaScript来实现这种HTML表单语法,但问题是如何实现。先谢谢你 echo '<table action="process.php" method="PO

我想创建一个出勤记录表单,老师可以在其中记录学生的出勤情况,并将其发送到数据库进行存储。在这里,我使用单选按钮,我希望这些按钮只能选择“出席”、“缺席”或“授权”,但现在它并没有实现我想要做的事情。现在单选按钮的选择不正常,所以请您让我以特定的方式放置单选按钮,以便它仅选择“出席”、“缺席”或“授权”。我认为我们必须使用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>";

仅当单选按钮具有相同名称时,才会对其进行分组。所以你想做的是:

<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>

单选按钮按“名称”属性分组。要使每行上的三个单选按钮中只有一个可选择,它们的名称必须相同,并且它们所需的值存储在“值”属性中

我认为假设您在结果行上有某种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'