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

回答編集履歴

5

加筆修正

2019/05/27 05:19

投稿

退会済みユーザー
answer CHANGED
@@ -21,4 +21,8 @@
21
21
  ただし、フォーム上でそのhidden値をどう活用するかによって、
22
22
  より最適な方法があるはず。
23
23
  jsやjQueryでなにかやるのかやらないのか、
24
- フォーム受信したあとになにかやるのかやらないのか次第。
24
+ フォーム受信したあとになにかやるのかやらないのか次第。
25
+
26
+ 例えばこんなミニマルなコードを書きました:
27
+ ![イメージ説明](b16e965a6f950277318f34a29807ca0c.png)
28
+ これで配列は直接echoできないってわかるんだけどね。

4

htmlspecialcharsを足してみた

2019/05/27 05:19

投稿

退会済みユーザー
answer CHANGED
@@ -5,13 +5,13 @@
5
5
  をつかって文字列に連結してしまいましょう。
6
6
 
7
7
  ```php
8
- <input type="hidden" name="test" value="<?=implode(',', $arr)?>">
8
+ <input type="hidden" name="test" value="<?=htmlspecialchars(implode(',', $arr), ENT_COMPAT | ENT_HTML401, 'UTF-8')?>">
9
9
  ```
10
10
 
11
11
  あるいは
12
12
  ```php
13
13
  foreach ($arr as $val) {
14
- ?><input type="hidden" name="test[]" value="<?=$val?>">
14
+ ?><input type="hidden" name="test[]" value="<?=htmlspecialchars($val, ENT_COMPAT | ENT_HTML401, 'UTF-8')?>">
15
15
  <?php
16
16
  }
17
17
  ```

3

見直し

2019/05/27 05:08

投稿

退会済みユーザー
answer CHANGED
@@ -4,17 +4,21 @@
4
4
  [PHP: implode - Manual](https://www.php.net/manual/ja/function.implode.php)
5
5
  をつかって文字列に連結してしまいましょう。
6
6
 
7
+ ```php
8
+ <input type="hidden" name="test" value="<?=implode(',', $arr)?>">
9
+ ```
10
+
7
11
  あるいは
8
12
  ```php
9
13
  foreach ($arr as $val) {
10
- ?><input type="hidden[]" name="test" value="<?=$val?>">
14
+ ?><input type="hidden" name="test[]" value="<?=$val?>">
11
15
  <?php
12
16
  }
13
17
  ```
14
- なら、name[]って名前で複数input要素が出力されたり。
18
+ なら、test[]って名前で複数input要素が出力されたり。
15
- name[]としたのは、フォームを受信するときに配列として受け取りたい場合を想定して。)
19
+ test[]としたのは、フォームを受信するときに配列として受け取りたい場合を想定して。)
16
20
 
17
- お好きな方で。
18
-
19
21
  ただし、フォーム上でそのhidden値をどう活用するかによって、
20
- より最適な方法があるはず。
22
+ より最適な方法があるはず。
23
+ jsやjQueryでなにかやるのかやらないのか、
24
+ フォーム受信したあとになにかやるのかやらないのか次第。

2

見直し

2019/05/27 05:04

投稿

退会済みユーザー
answer CHANGED
@@ -7,11 +7,12 @@
7
7
  あるいは
8
8
  ```php
9
9
  foreach ($arr as $val) {
10
- ?><input type="hidden" name="test" value="<?=$val?>">
10
+ ?><input type="hidden[]" name="test" value="<?=$val?>">
11
11
  <?php
12
12
  }
13
13
  ```
14
- なら、nameって名前で複数input要素が出力されたり。
14
+ なら、name[]って名前で複数input要素が出力されたり。
15
+ (name[]としたのは、フォームを受信するときに配列として受け取りたい場合を想定して。)
15
16
 
16
17
  お好きな方で。
17
18
 

1

見直し

2019/05/27 05:02

投稿

退会済みユーザー
answer CHANGED
@@ -2,4 +2,18 @@
2
2
  `<?=$arr?>`みたいにして出力することは出来ません。
3
3
 
4
4
  [PHP: implode - Manual](https://www.php.net/manual/ja/function.implode.php)
5
- をつかって文字列に連結してしまいましょう。
5
+ をつかって文字列に連結してしまいましょう。
6
+
7
+ あるいは
8
+ ```php
9
+ foreach ($arr as $val) {
10
+ ?><input type="hidden" name="test" value="<?=$val?>">
11
+ <?php
12
+ }
13
+ ```
14
+ なら、nameって名前で複数input要素が出力されたり。
15
+
16
+ お好きな方で。
17
+
18
+ ただし、フォーム上でそのhidden値をどう活用するかによって、
19
+ より最適な方法があるはず。