目前我已经根据数据库生成了一组复选框
看起来像是
Week 1 Week 2 Week 3 Week 4 .....
Student 1 [] [] [] []
Student 2 [] [] [] []
Student 3 [] [] [] []
Student 4 [] [] [] []
.....
[]代表复选框
如何获得用户选择的内容?我使用attendance_list[]
作为复选框的名称,但是当勾选一个时,它会为所有用户返回值。
谢谢。
答案 0 :(得分:2)
您应该使用多维数组来代表学生及其出勤率。
例如,
<!-- Student 1, Week 1 to 4 -->
<input type='checkbox' name='attendance_list[1][1]' />
<input type='checkbox' name='attendance_list[1][2]' />
<input type='checkbox' name='attendance_list[1][3]' />
<input type='checkbox' name='attendance_list[1][4]' />
<!-- Student 2, Week 1 to 4 -->
<input type='checkbox' name='attendance_list[2][1]' />
<input type='checkbox' name='attendance_list[2][2]' />
<input type='checkbox' name='attendance_list[2][3]' />
<input type='checkbox' name='attendance_list[2][4]' />
<!-- And, so on.. -->
服务器端,您将获得已经检查过的元素数组。使用数组的索引,您可以确定哪个学生在几周内出席。
如果选中了上述所有复选框,则您的数组将如下所示:
Array
(
[attendance_list] => Array
(
[1] => Array
(
[1] => on
[2] => on
[3] => on
[4] => on
)
[2] => Array
(
[1] => on
[2] => on
[3] => on
[4] => on
)
)
)
这表明学生1和学生2都参加了4周。
答案 1 :(得分:2)
我想看看你的代码,如果没关系的话。我现在猜对了答案。
当您使用attendance_list []作为您的名字时,PHP会自动为POST中的每个复选框分配一个不同的字段作为POST返回中的数组。
如果要区分学生,可以通过将student_1 [(#week)]指定为名称并在选中时将“Y”指定为值来在HTML中执行此操作。在服务器端,通过学生的POST并收集值为“Y”的所有键。默认情况下它应该存在,未经检查的那些不会通过,但我之前已经遇到过奇怪的行为。
Josh更进一步,提供了一个多维阵列。如果您对通过多维数组进行排序感到满意,这将为您提供所需的功能。