0

現在、データベースに基づいてチェックボックスのセットを作成しました

のように見えます

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

[]はチェックボックスを表します

ユーザーがチェックしたものを取得するにはどうすればよいですか?チェックボックスの名前として使用attendance_list[]していますが、チェックボックスをオンにすると、すべてのユーザーの値が返されます。

ありがとうございました。

4

2 に答える 2

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 に答える
2

よろしければ、あなたのコードを見てみたいです。とりあえず答えを推測します。

名前としてattendance_list[]を使用すると、PHPは、POSTリターンの配列として、チェックボックスごとにPOSTの異なるフィールドを自動的に割り当てます。

学生を区別したい場合は、HTMLで、student_1 [(#week)]を名前として割り当て、チェックしたときに値として「Y」を割り当てることで、これを行うことができます。サーバー側で、学生によるPOSTを実行し、値が「Y」のすべてのキーを収集します。それはデフォルトでそこにあるはずであり、チェックされていないものは通り抜けませんが、私はこれについて以前に奇妙な振る舞いをしました。

Joshはさらに一歩進んで、多次元配列を提供しました。これにより、多次元配列の並べ替えに慣れている場合に必要なものが得られます。

于 2012-04-10T17:54:36.130 に答える