質問編集履歴
1
コードの追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -177,4 +177,156 @@
|
|
177
177
|
<p>(必須)年齢<input type="text" name="age" size="2" value="<?php if($age){echo $age;}else{echo '';}?>">歳</p>
|
178
178
|
```
|
179
179
|
ここで入力保持の為、設定した$ageが表示されません。
|
180
|
-
上記問題を解決するには、どのようにすれば良いでしょうか?
|
180
|
+
上記問題を解決するには、どのようにすれば良いでしょうか?
|
181
|
+
追記です。
|
182
|
+
「0」のチェックを解決したコードを作り直してみましたので、下記に追加しておきます。
|
183
|
+
下記は、お問合せ入力画面の「inquiry_form.php」です
|
184
|
+
```php
|
185
|
+
<?php
|
186
|
+
session_start();
|
187
|
+
|
188
|
+
$err = [];
|
189
|
+
if(!empty($_POST)){
|
190
|
+
$name = filter_input(INPUT_POST,'name');
|
191
|
+
$age = (string)filter_input(INPUT_POST,'age');
|
192
|
+
$color = filter_input(INPUT_POST,'color', FILTER_DEFAULT,FILTER_REQUIRE_ARRAY);
|
193
|
+
//全角を半角にし、空白を削除
|
194
|
+
$name = str_replace([' ',' '], '', mb_convert_kana($name, 'a', 'UTF-8'));
|
195
|
+
$age = str_replace([' ',' '], '', mb_convert_kana($age, 'a', 'UTF-8'));
|
196
|
+
var_dump($age);
|
197
|
+
if(!strlen($name) > 0){
|
198
|
+
|
199
|
+
$name_err = '必須項目です';
|
200
|
+
echo __LINE__ . PHP_EOL;
|
201
|
+
}else{
|
202
|
+
echo __LINE__ . PHP_EOL;
|
203
|
+
|
204
|
+
}
|
205
|
+
|
206
|
+
if(empty($name_err)){
|
207
|
+
$_SESSION['name'] = $name;
|
208
|
+
}
|
209
|
+
|
210
|
+
if(strlen($age) > 0){
|
211
|
+
echo __LINE__;
|
212
|
+
|
213
|
+
if(!ctype_digit($age)){
|
214
|
+
var_dump($age);
|
215
|
+
|
216
|
+
$age_err = '年齢は整数を入力してください';
|
217
|
+
var_dump($age);
|
218
|
+
echo __LINE__ . PHP_EOL;
|
219
|
+
}else{
|
220
|
+
var_dump($age);
|
221
|
+
echo __LINE__ . PHP_EOL;
|
222
|
+
}
|
223
|
+
}else{
|
224
|
+
$age_err = '必須項目です';
|
225
|
+
echo __LINE__;
|
226
|
+
}
|
227
|
+
|
228
|
+
// var_dump($name_err);
|
229
|
+
// var_dump($age_err);
|
230
|
+
// exit();
|
231
|
+
if(empty($age_err)){
|
232
|
+
$_SESSION['age'] = $age;
|
233
|
+
}
|
234
|
+
|
235
|
+
// var_dump($age);
|
236
|
+
// var_dump($age_err);
|
237
|
+
// exit();
|
238
|
+
|
239
|
+
if($color){
|
240
|
+
$color = implode('、',$color);
|
241
|
+
echo __LINE__ . PHP_EOL;
|
242
|
+
}else{
|
243
|
+
$color = array();
|
244
|
+
$color = '';
|
245
|
+
//echo __LINE__ . PHP_EOL;
|
246
|
+
}
|
247
|
+
|
248
|
+
$_SESSION['color'] = $color;
|
249
|
+
|
250
|
+
if(empty($name_err) && empty($age_err)){
|
251
|
+
header('Location:complete.php');
|
252
|
+
exit();
|
253
|
+
echo 'OK';
|
254
|
+
echo __LINE__;
|
255
|
+
}
|
256
|
+
// var_dump($name_err);
|
257
|
+
// var_dump($age_err);
|
258
|
+
// exit();
|
259
|
+
|
260
|
+
|
261
|
+
}
|
262
|
+
|
263
|
+
?>
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
<!DOCTYPE html>
|
268
|
+
<html lang="ja">
|
269
|
+
<head>
|
270
|
+
<meta charset="UTF-8">
|
271
|
+
<title>お問合せ</title>
|
272
|
+
</head>
|
273
|
+
<body>
|
274
|
+
<h1 style="color:red">お問合せ画面</h1>
|
275
|
+
<p>お問合せ内容を入力してください。</p>
|
276
|
+
<form id="input_form" action="inquiry_form.php" method="post">
|
277
|
+
<p>
|
278
|
+
(必須)名前<input type="text" name="name" value="<?php echo isset($name) ? $name : ''; ?>">
|
279
|
+
<span style="color:red"><?php echo isset($name_err) ? $name_err : ''; ?></span><br>
|
280
|
+
(必須)年齢<input type="text" name="age" size="5" value="<?php echo isset($age) ? $age : '';?>">歳
|
281
|
+
<span style="color:red"><?php echo isset($age_err) ? $age_err : ''; ?></span><br>
|
282
|
+
|
283
|
+
好きな色 <input type="checkbox" name="color[]" value="赤">赤
|
284
|
+
<input type="checkbox" name="color[]" value="緑">緑
|
285
|
+
<input type="checkbox" name="color[]" value="青">青
|
286
|
+
</p>
|
287
|
+
<input type="submit" value="送信">
|
288
|
+
</form>
|
289
|
+
<script>
|
290
|
+
document.addEventListener('DOMContentLoaded',function(){
|
291
|
+
document.getElementById('input_form').addEventListener('submit',function(e){
|
292
|
+
if(!window.confirm('ページを送信しても良いですか?')){
|
293
|
+
e.preventDefault();
|
294
|
+
}
|
295
|
+
},false)
|
296
|
+
},false);
|
297
|
+
</script>
|
298
|
+
</body>
|
299
|
+
</html>
|
300
|
+
```
|
301
|
+
下記は、完了画面の「complete.php」です
|
302
|
+
```php
|
303
|
+
<?php
|
304
|
+
session_start();
|
305
|
+
?>
|
306
|
+
|
307
|
+
<!DOCTYPE html>
|
308
|
+
<html lang="ja">
|
309
|
+
<head>
|
310
|
+
<meta charset="UTF-8">
|
311
|
+
<title> お問合せ完了</title>
|
312
|
+
</head>
|
313
|
+
<body>
|
314
|
+
<h1 style="color:red">お問合せ 完了画面</h1>
|
315
|
+
<h3>送信しました</h3>
|
316
|
+
<table border="1" >
|
317
|
+
<tr>
|
318
|
+
<td>名前</td>
|
319
|
+
<td><?php echo $_SESSION['name']; ?></td>
|
320
|
+
</tr>
|
321
|
+
<tr>
|
322
|
+
<td>年齢</td>
|
323
|
+
<td><?php echo $_SESSION['age']; ?>歳</td>
|
324
|
+
</tr>
|
325
|
+
<tr>
|
326
|
+
<td>好きな色</td>
|
327
|
+
<td><?php echo $_SESSION['color']; ?></td>
|
328
|
+
</tr>
|
329
|
+
</table>
|
330
|
+
</body>
|
331
|
+
</html>
|
332
|
+
```
|