我正在尝试创建一个学生出勤表,其中包含每个学生出勤的复选框,该表将存储在数据库中。
这是我到目前为止的表,它是从ajax函数调用执行的。大多数数据来自包含学生姓名的数据库。
为了这个例子$numStudent = 5;
echo '<form method="post" action="checkAttend.php">
<table border="1">';
$count = 1;
while(($count < $numStudent) && ($students = mysqli_fetch_assoc($result))) {
echo '<tr>
<th>' . $count. '</th>
<th>' . $students['student_name'] . '</th>
<th> <input type="checkbox" name="students[]" /> </th>
</tr>';
$count++;
}
echo '<th colspan = "3">
<input type="submit" name="button" id="button" value="Submit" /> </th>';
echo '</table>';
echo '</form>';
在checkAttend.php
中,表单完全按照我需要的方式打印,但是当我尝试打印出复选框数组中的值时(在将其保存到数据库之前检查包含的值)每个值在数组中打印出来:
$student_attend[0] A
$student_attend[1] r
$student_attend[2] r
$student_attend[3] a
$student_attend[4] y
通常我想在数据库的相应字段中存储某种值,以指示学生是否缺席。
我无法判断我是否正确执行了复选框循环,或者是否需要添加更多内容。
答案 0 :(得分:1)
您需要循环遍历$student_attend
数组,如下所示:
foreach ($student_attend as $value) {
// do something with $value
}
有关foreach
here的更多信息。
答案 1 :(得分:0)
如果您想使用复选框添加动态数据,则可以按如下方式使用它: 在表单标签内,您可以使用
<form method="post" action="checkAttend.php">
<table border="1">
<?php
$count=1;
while($students = mysqli_fetch_assoc($result)) {
?>
<tr>
<th><?php echo $count;?></th>
<th><?php echo $student['student_name']; ?></th>
<th><input type="checkbox" name="students[]" value=<?php echo $student['student_id']; ?>/></th>
</tr>
<?php
}
?>
</table>
</form>
并在checkAttend.php页面中编写以下代码:
if(isset($_POST['button'])){
if(count($_POST['student_id'])>0){
foreach($_POST['student_id'] as $student_id){
mysql_query("update table_name set column_name = '1' where student_id = '".$student_id.'");
// Just use the student id as checkbox value and update it as you just need the check or uncheck the checkbox.
}
}
}