HTMLページでチェックされたすべてのアイテムを取得し、それらを配列に入れて特定のアクションを実行する必要があります。チェックボックスのフィールド (名前、値など) がわかりません。ruby on railsでhtmlを使っています!
3 に答える
$_POST
はすでにform
セット内のすべての配列です。これを使用して、チェックボックスで「特定のアクション」を実行します。何らかの理由で別の変数の情報が必要な場合は、次のようにループして$_POST
別の変数に入れます。
while ($row = $_POST) {
$new_var[] = $row[0];
}
新しい/別の配列に入れるとうまくいくはずですが、率直に言って、それはすでに配列であるため、その意味がわかりません。
$_POST の配列がどのように見えるかを理解する限り、var_dump()
それを見てください。チェックボックスの名前はその名前に[]
なり、値は の後に表示されます=>
。したがって、入力に名前が付けられ、name=box1
値が配列value=1
である場合、$_POST
観点からは次のように見える[box1] => 1
ため、このセクションを具体的に呼び出すことで使用できます。それを呼び出して(新しい変数に入れるのではなく)それを使用します。$foo = $_POST['box1']
$foo
box1
次のようなことをすると:
<input type='checkbox' name='User[]' VALUE='someVal'>Visible Text</option>
ユーザーがチェックボックスをオンにして送信したものは、User という POST 配列に格納されます。
名前に [ ] を追加すると、送信時に配列が作成されます。
ruby on rails ではなく php でこれを行うのは難しいかどうかはわかりません。フォームが送信されたときにユーザーが配列をサーバーに渡します。チェックボックスに User という名前を付けているため、投稿された配列は User と呼ばれます。PHP では、投稿された配列を次のように取得します。
print_r($HTTP_POST_VARS["User"]);
次に、これは次のように配列を出力します。
Array ( [0] => Me [1] => You [2] => SomeoneElse )
配列内のすべてのデータはチェックボックスでした。あなたができること
foreach ( $HTTP_POST_VARS["User"] as $key => $value) { $key is 0, $value is Me. and so on }
これがお役に立てば幸いです–</p>
クライアント側で JavaScript を使用して実行する必要がある場合は、次のように jQuery を使用できます。
var arr = $('[type=checkbox]:checked');
ruby on rails のサーバー側でこれを行う必要がある場合、私はお手伝いできません。ただし、チェックされたチェックボックスのみがGETまたはPOSTでサーバーに送り返されることを知っているので、これらのチェックボックスの名前がわかっている場合は、リクエストオブジェクトからそれらを取得して配列に入れることができます. チェックされていないチェックボックスはサーバーに到達しないため、明示的に無視する必要はありません。