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

回答編集履歴

1

追記

2016/12/03 12:21

投稿

Takamoso
Takamoso

スコア248

answer CHANGED
@@ -1,3 +1,39 @@
1
1
  [http://www.htmq.com/html5/input_type_checkbox.shtml](http://www.htmq.com/html5/input_type_checkbox.shtml)
2
2
 
3
- checked属性を追加してやればいいのではないでしょうか。
3
+ checked属性を追加してやればいいのではないでしょうか。
4
+
5
+ 具体的なソースコード(一例)
6
+ ---
7
+
8
+ ```php
9
+ <?php
10
+
11
+ $text[0] = 'B';
12
+ $text[1] = 'C';
13
+
14
+ $form = <<< HTML
15
+ <form method='post' action=''>
16
+ <input type="checkbox" name="text[]" value="A">A
17
+ <input type="checkbox" name="text[]" value="B">B
18
+ <input type="checkbox" name="text[]" value="C">C
19
+ </form>
20
+ HTML;
21
+
22
+ // DOMドキュメント
23
+ $dom = new DOMDocument();
24
+ $dom->loadHTML($form);
25
+
26
+ // inputタグの数だけループ
27
+ foreach ($dom->getElementsByTagName('input') as $input)
28
+ {
29
+ // valueの値が$text配列に含まれていたら
30
+ if (in_array($input->getAttribute('value'), $text))
31
+ {
32
+ // checked属性追加
33
+ $input->setAttribute('checked', '');
34
+ }
35
+ }
36
+
37
+ // HTMLに出力
38
+ echo $dom->saveHTML();
39
+ ```