回答編集履歴
1
文章を手直し
answer
CHANGED
@@ -1,13 +1,16 @@
|
|
1
|
-
PHPの`$_POST`で受け取る
|
1
|
+
PHPの`$_POST`で配列として受け取る仕様はHTTPの仕様ではなく独自仕様です。
|
2
|
-
HTTPのPOST通信で送るメッセージ的な話をすると、
|
3
|
-
`revl[]=1`、`revl[]=2`といった風に`[]`付きの同名のフィールドをいくつも宣言する形で実現させます。
|
4
2
|
|
3
|
+
HTTPのPOST通信で送るメッセージ的な話を織り交ぜて説明しますが、
|
4
|
+
`revl[]=1`、`revl[]=2`といった風に`[]`付きの同名のフィールドをいくつも宣言して送信すると、
|
5
|
+
PHPが`$_POST['revl']`を`["1", "2", ...]`という風に解釈して配列として展開します。
|
6
|
+
|
5
7
|
これをJavaScriptのコードに反映するとこうなります。
|
6
8
|
|
7
9
|
```JavaScript
|
8
10
|
$('#search').on('click', function() {
|
9
11
|
var $form = $('<form/>', {action: './test.php', method: 'post'});
|
10
12
|
|
13
|
+
// revl[]という名称のinputタグを複数個生成する
|
11
14
|
$('input:checkbox[name="revl"]:checked').each(function() {
|
12
15
|
var color = $(this).val();
|
13
16
|
$form.append($('<input/>', {type: 'hidden', name: 'revl[]', value: color})
|