teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文章を手直し

2018/08/22 05:44

投稿

miyabi-sun
miyabi-sun

スコア21461

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})