我正在尝试编写一个考勤系统,当用户出现在课堂上时,工作人员将选中一个框,然后程序将添加一个到相关客户的当前计数中。问题是输出寄存器,取自phpMyAdmin,它使用while循环,因此所有复选框都具有相同的变量名称。这是我到目前为止的代码...
echo "<form 'action=badminreg.inc.php' method='post'>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>".$row['bookingID']."</td><td>".$row['firstName']."</td><td>".$row['surname']."</td><td><input type='checkbox' name='present' value='present'</td><td><input type='checkbox' name='incident' value='incident'</td></tr>";
}
echo "<input type='submit' name='reg-submit'>";
echo "</form>";
isset($_POST['reg-submit']);
$pres = $_POST['present'];
我需要分离复选框输入,以便程序能够以不同的方式标记单个用户。我对PHP有点陌生,因为这是我的A-level课程,所以有没有办法解决这个问题?任何帮助都会很棒。谢谢
您可以将复选框元素的名称定义为数组,并将bookingID
作为值传递。
示例(未经测试(:
$output = "<tr><td>{$row['bookingID']}</td><td>{$row['firstName']}</td><td>{$row['surname']}</td><td><input type='checkbox' name='present[]' value='{$row['bookingID']}'</td><td><input type='checkbox' name='incident[]' value='{$row['bookingID']}'</td></tr>";
变量$_POST['present']
和$_POST['incident']
包含一个数组,其中包含所选复选框的 ID。
如果将其更改为name='present[]'
,则当您再次提交数据时,您将在$_POST["present"]
内获得一个值数组,而不是单个值数组。(对于实际选中的每个复选框,您将在数组中获得一个项目 - HTML 表单的一个怪癖是,如果未选中该复选框,则根本不会提交其值(。
您还需要将复选框的value
更改为客户的 ID(或预订,也许(,以便您可以识别选中了哪个框。
当然,"事件"复选框也是如此。
所以你的目标是这样的东西,我认为:
echo "<tr>
<td>".$row['bookingID']."</td>
<td>".$row['firstName']."</td>
<td>".$row['surname']."</td>
<td><input type='checkbox' name='present[]' value='".$row['bookingID']."'</td>
<td><input type='checkbox' name='incident[]' value='".$row['bookingID']."'</td>
</tr>";