0

目前我已经制作了一组基于数据库的复选框

看起来像

               Week 1        Week 2       Week 3       Week 4  .....
Student 1        []           []           []            []
Student 2        []            []          []            []
Student 3        []            []          []            [] 
Student 4        []            []          []            []
.....

[] 代表复选框

我如何获得用户勾选的内容?我attendance_list[]用作复选框的名称,但是当勾选一个时,它会为所有用户返回值。

谢谢你。

4

2 回答 2

2

我想看看你的代码,如果可以的话。我现在会猜测答案。

当您使用 admission_list[] 作为名称时,PHP 会自动在 POST 中为每个复选框分配一个不同的字段,作为 POST 返回中的一个数组。

如果要区分学生,可以在 HTML 中通过将 student_1[(#week)] 指定为名称并在选中时将 'Y' 作为值来执行此操作。在服务器端,通过学生的 POST 并收集所有值为“Y”的键。默认情况下它应该在那里,未经检查的那些不会通过,但我之前遇到过奇怪的行为。

Josh 更进一步,提供了一个多维数组。如果您对多维数组排序感到满意,这将为您提供所需的东西。

于 2012-04-10T17:54:36.130 回答
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 周都在上课。

于 2012-04-10T17:46:09.840 回答