回答編集履歴
3
PHP回答コード全面修正
test
CHANGED
@@ -58,19 +58,7 @@
|
|
58
58
|
|
59
59
|
```php
|
60
60
|
|
61
|
-
echo (
|
61
|
+
echo 'xxx'.($selected == "1" ? ' selected' : '');
|
62
|
-
|
63
|
-
```
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
冗長ですが、下記のように書いても上記と同じ結果になります。
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
```php
|
72
|
-
|
73
|
-
(isset($_POST['NOP_1']) && $_POST['NOP_1'] == 1) ? echo 'selected' : echo '';
|
74
62
|
|
75
63
|
```
|
76
64
|
|
@@ -80,101 +68,77 @@
|
|
80
68
|
|
81
69
|
|
82
70
|
|
83
|
-
修正全文は下記になります。
|
71
|
+
修正全文は下記になります。質問のコードでは、連想配列を用意してからHTMLに反映していましたが、下記はHTMLの中にPHPコードを組み込む形で直接コーディングしてみました。
|
84
72
|
|
85
73
|
|
86
74
|
|
87
75
|
```php
|
88
76
|
|
77
|
+
<?php
|
78
|
+
|
89
79
|
//1
|
90
80
|
|
91
|
-
//
|
81
|
+
//2
|
82
|
+
|
83
|
+
?>
|
92
84
|
|
93
85
|
|
94
86
|
|
87
|
+
<div id="choice">
|
88
|
+
|
89
|
+
<?php
|
90
|
+
|
91
|
+
// チェックボックス値フィルター
|
92
|
+
|
93
|
+
$attributes = filter_input(INPUT_POST, 'attribute', FILTER_SANITIZE_NUMBER_INT, array('flags' => FILTER_REQUIRE_ARRAY));
|
95
94
|
|
96
95
|
|
97
|
-
//2
|
98
96
|
|
99
|
-
//
|
97
|
+
// attribute[], NOP_x出力
|
98
|
+
|
99
|
+
for ($i=1; $i<=23; $i++) :
|
100
|
+
|
101
|
+
// セレクトボックス値フィルター
|
102
|
+
|
103
|
+
$selected = filter_input(INPUT_POST, 'NOP_'.$i, FILTER_SANITIZE_NUMBER_INT);
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
if (empty($attributes[$i-1])) {
|
108
|
+
|
109
|
+
$attributes[$i-1] = 0;
|
110
|
+
|
111
|
+
}
|
112
|
+
|
113
|
+
if (empty($selected)) {
|
114
|
+
|
115
|
+
$selected = 0;
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
echo ' <input type="checkbox" name="attribute[]" value="'.$i.'" id="'.$i.'"'.($attributes[$i-1] == $i ? ' checked' : '').'><label for=".$i.">A</label>'."\n";
|
122
|
+
|
123
|
+
echo ' <select name="NOP_'.$i.'">'."\n";
|
124
|
+
|
125
|
+
echo ' <option value="0">0</option>'."\n";
|
126
|
+
|
127
|
+
echo ' <option value="1"'.($selected == "1" ? ' selected' : '').'>1</options>'."\n";
|
128
|
+
|
129
|
+
echo ' <option value="2"'.($selected == "2" ? ' selected' : '').'>2</options>'."\n";
|
130
|
+
|
131
|
+
echo ' <option value="3"'.($selected == "3" ? ' selected' : '').'>3</options>'."\n";
|
132
|
+
|
133
|
+
echo ' <option value="4"'.($selected == "4" ? ' selected' : '').'>4</options>'."\n";
|
134
|
+
|
135
|
+
echo ' </select>'."\n";
|
100
136
|
|
101
137
|
?>
|
102
138
|
|
103
|
-
<div id="choice">
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
<input type="checkbox" name="attribute[]" value="1" id="1" <?php echo $checked["attribute"][1]; ?>><label>A</label>
|
108
|
-
|
109
|
-
<select name="NOP_1">
|
110
|
-
|
111
|
-
<option value="0">0</option>
|
112
|
-
|
113
|
-
<option value="1" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "1") ? "selected" : ""; ?>>1</option>
|
114
|
-
|
115
|
-
<option value="2" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "2") ? "selected" : ""; ?>>2</option>
|
116
|
-
|
117
|
-
<option value="3" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "3") ? "selected" : ""; ?>>3</option>
|
118
|
-
|
119
|
-
<option value="4" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "4") ? "selected" : ""; ?>>4</option>
|
120
|
-
|
121
|
-
</select>
|
122
|
-
|
123
139
|
<br><br>
|
124
140
|
|
125
|
-
<input type="checkbox" name="attribute[]" value="2" id="2" <?php echo $checked["attribute"][2]; ?>><label>B</label>
|
126
|
-
|
127
|
-
<select name="NOP_2">
|
128
|
-
|
129
|
-
<option value="0">0</option>
|
130
|
-
|
131
|
-
<option value="1" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "1") ? "selected" : ""; ?>>1</option>
|
132
|
-
|
133
|
-
<option value="2" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "2") ? "selected" : ""; ?>>2</option>
|
134
|
-
|
135
|
-
<option value="3" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "3") ? "selected" : ""; ?>>3</option>
|
136
|
-
|
137
|
-
<option value="4" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "4") ? "selected" : ""; ?>>4</option>
|
138
|
-
|
139
|
-
</select>
|
140
|
-
|
141
|
-
|
141
|
+
<?php endfor; ?>
|
142
|
-
|
143
|
-
<input type="checkbox" name="attribute[]" value="3" id="3" <?php echo $checked["attribute"][3]; ?>><label>C</label>
|
144
|
-
|
145
|
-
<select name="NOP_3">
|
146
|
-
|
147
|
-
<option value="0">0</option>
|
148
|
-
|
149
|
-
<option value="1" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "1") ? "selected" : ""; ?>>1</option>
|
150
|
-
|
151
|
-
<option value="2" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "2") ? "selected" : ""; ?>>2</option>
|
152
|
-
|
153
|
-
<option value="3" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "3") ? "selected" : ""; ?>>3</option>
|
154
|
-
|
155
|
-
<option value="4" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "4") ? "selected" : ""; ?>>4</option>
|
156
|
-
|
157
|
-
</select>
|
158
|
-
|
159
|
-
//同じようなコードの連続
|
160
|
-
|
161
|
-
<input type="checkbox" name="attribute[]" value="23" id="23" <?php echo $checked["attribute"][23]; ?>><label>X</label>
|
162
|
-
|
163
|
-
<select name="NOP_23">
|
164
|
-
|
165
|
-
<option value="0">0</option>
|
166
|
-
|
167
|
-
<option value="1" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "1") ? "selected" : ""; ?>>1</option>
|
168
|
-
|
169
|
-
<option value="2" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "2") ? "selected" : ""; ?>>2</option>
|
170
|
-
|
171
|
-
<option value="3" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "3") ? "selected" : ""; ?>>3</option>
|
172
|
-
|
173
|
-
<option value="4" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "4") ? "selected" : ""; ?>>4</option>
|
174
|
-
|
175
|
-
</select>
|
176
|
-
|
177
|
-
<br><br>
|
178
142
|
|
179
143
|
|
180
144
|
|
2
コード全文修正ミス
test
CHANGED
@@ -164,13 +164,13 @@
|
|
164
164
|
|
165
165
|
<option value="0">0</option>
|
166
166
|
|
167
|
-
<option value="1" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']
|
167
|
+
<option value="1" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "1") ? "selected" : ""; ?>>1</option>
|
168
168
|
|
169
|
-
<option value="2" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']
|
169
|
+
<option value="2" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "2") ? "selected" : ""; ?>>2</option>
|
170
170
|
|
171
|
-
<option value="3" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']
|
171
|
+
<option value="3" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "3") ? "selected" : ""; ?>>3</option>
|
172
172
|
|
173
|
-
<option value="4" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']
|
173
|
+
<option value="4" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23'] == "4") ? "selected" : ""; ?>>4</option>
|
174
174
|
|
175
175
|
</select>
|
176
176
|
|
1
修正コード全文を記載
test
CHANGED
@@ -1,9 +1,185 @@
|
|
1
|
+
#### ヒアドキュメント
|
2
|
+
|
3
|
+
|
4
|
+
|
1
|
-
|
5
|
+
ポイントは、ヒアドキュメントのなかに`<?php ... ?>`を書くことはできません。変数は書くことはできます。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
ヒアドキュメントでできることは`echo "abc{$value}"`や、`echo "abc{$obj->hoge()}"`のように「ダブルクオート引用符のなかに変数などを記載する」ことと同等のことしかできません。
|
2
10
|
|
3
11
|
|
4
12
|
|
5
13
|
```php
|
6
14
|
|
15
|
+
// OK
|
16
|
+
|
17
|
+
echo <<<EOF
|
18
|
+
|
19
|
+
<input type="checkbox" name="attribute[]" value="1" id="1" {$checked["attribute"][1]}><label>A</label>
|
20
|
+
|
21
|
+
EOF;
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
// NG
|
26
|
+
|
27
|
+
echo <<<EOF
|
28
|
+
|
29
|
+
<input type="checkbox" name="attribute[]" value="1" id="1" <?phpp echo $checked["attribute"][1]; ?>><label>A</label>
|
30
|
+
|
31
|
+
EOF;
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
// NG
|
36
|
+
|
37
|
+
echo <<<EOF
|
38
|
+
|
7
|
-
|
39
|
+
<option value="1" {(isset($_POST['NOP_1']) && $_POST['NOP_1'] == "1") ? "selected" : ""}>1</option>
|
40
|
+
|
41
|
+
EOF;
|
8
42
|
|
9
43
|
```
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
#### 三項演算子
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
`(xxx) ? yyy : zzz;`は三項演算子と呼ばれ、いろいろなプログラムでサポートされています。(丸カッコは省略してもかまいません)`if (xxx) yyy; else zzz;`と同じ意味になります。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
今回は下記のように書きます。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
```php
|
60
|
+
|
61
|
+
echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == 1) ? 'selected' : '';
|
62
|
+
|
63
|
+
```
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
冗長ですが、下記のように書いても上記と同じ結果になります。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
```php
|
72
|
+
|
73
|
+
(isset($_POST['NOP_1']) && $_POST['NOP_1'] == 1) ? echo 'selected' : echo '';
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
----
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
修正全文は下記になります。
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
```php
|
88
|
+
|
89
|
+
//1
|
90
|
+
|
91
|
+
//中略
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
//2
|
98
|
+
|
99
|
+
// ↓PHPの閉じ「?>」を忘れず記入します。
|
100
|
+
|
101
|
+
?>
|
102
|
+
|
103
|
+
<div id="choice">
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
<input type="checkbox" name="attribute[]" value="1" id="1" <?php echo $checked["attribute"][1]; ?>><label>A</label>
|
108
|
+
|
109
|
+
<select name="NOP_1">
|
110
|
+
|
111
|
+
<option value="0">0</option>
|
112
|
+
|
113
|
+
<option value="1" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "1") ? "selected" : ""; ?>>1</option>
|
114
|
+
|
115
|
+
<option value="2" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "2") ? "selected" : ""; ?>>2</option>
|
116
|
+
|
117
|
+
<option value="3" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "3") ? "selected" : ""; ?>>3</option>
|
118
|
+
|
119
|
+
<option value="4" <?php echo (isset($_POST['NOP_1']) && $_POST['NOP_1'] == "4") ? "selected" : ""; ?>>4</option>
|
120
|
+
|
121
|
+
</select>
|
122
|
+
|
123
|
+
<br><br>
|
124
|
+
|
125
|
+
<input type="checkbox" name="attribute[]" value="2" id="2" <?php echo $checked["attribute"][2]; ?>><label>B</label>
|
126
|
+
|
127
|
+
<select name="NOP_2">
|
128
|
+
|
129
|
+
<option value="0">0</option>
|
130
|
+
|
131
|
+
<option value="1" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "1") ? "selected" : ""; ?>>1</option>
|
132
|
+
|
133
|
+
<option value="2" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "2") ? "selected" : ""; ?>>2</option>
|
134
|
+
|
135
|
+
<option value="3" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "3") ? "selected" : ""; ?>>3</option>
|
136
|
+
|
137
|
+
<option value="4" <?php echo (isset($_POST['NOP_2']) && $_POST['NOP_2'] == "4") ? "selected" : ""; ?>>4</option>
|
138
|
+
|
139
|
+
</select>
|
140
|
+
|
141
|
+
<br><br>
|
142
|
+
|
143
|
+
<input type="checkbox" name="attribute[]" value="3" id="3" <?php echo $checked["attribute"][3]; ?>><label>C</label>
|
144
|
+
|
145
|
+
<select name="NOP_3">
|
146
|
+
|
147
|
+
<option value="0">0</option>
|
148
|
+
|
149
|
+
<option value="1" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "1") ? "selected" : ""; ?>>1</option>
|
150
|
+
|
151
|
+
<option value="2" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "2") ? "selected" : ""; ?>>2</option>
|
152
|
+
|
153
|
+
<option value="3" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "3") ? "selected" : ""; ?>>3</option>
|
154
|
+
|
155
|
+
<option value="4" <?php echo (isset($_POST['NOP_3']) && $_POST['NOP_3'] == "4") ? "selected" : ""; ?>>4</option>
|
156
|
+
|
157
|
+
</select>
|
158
|
+
|
159
|
+
//同じようなコードの連続
|
160
|
+
|
161
|
+
<input type="checkbox" name="attribute[]" value="23" id="23" <?php echo $checked["attribute"][23]; ?>><label>X</label>
|
162
|
+
|
163
|
+
<select name="NOP_23">
|
164
|
+
|
165
|
+
<option value="0">0</option>
|
166
|
+
|
167
|
+
<option value="1" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']} == "1") ? "selected" : ""; ?>>1</option>
|
168
|
+
|
169
|
+
<option value="2" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']} == "2") ? "selected" : ""; ?>>2</option>
|
170
|
+
|
171
|
+
<option value="3" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']} == "3") ? "selected" : ""; ?>>3</option>
|
172
|
+
|
173
|
+
<option value="4" <?php echo (isset($_POST['NOP_23']) && $_POST['NOP_23']} == "4") ? "selected" : ""; ?>>4</option>
|
174
|
+
|
175
|
+
</select>
|
176
|
+
|
177
|
+
<br><br>
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
</div><!-- / end #choice -->
|
182
|
+
|
183
|
+
```
|
184
|
+
|
185
|
+
|