入力された値を取得(2)

文字入力以外のフォーム要素



《input.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>入力フォームあれこれ</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>入力フォームあれこれ</h1>
<form name="input_form" action="output.php" method="post">
<table>
<tr>
<th>氏名</th>
<td><input type="text" name="name" size="40" maxlength="20"></td>
</tr>
<tr>
<th>好きな色</th>
<td>
<select name="color">
  <option value="">以下の中から選択してください</option>
  <option value="赤"></option>
  <option value="青"></option>
  <option value="黄色">黄色</option>
</select>
</td>
</tr>
<tr>
<th>性別</th>
<td>
<input type="radio" name="gender" value="男性">男性<br>
<input type="radio" name="gender" value="女性">女性
</td>
</tr>
<tr>
<th>趣味</th>
<td>
<input type="checkbox" name="hobbies[]" value="ゴルフ">ゴルフ<br>
<input type="checkbox" name="hobbies[]" value="読書">読書<br>
<input type="checkbox" name="hobbies[]" value="旅行">旅行<br>
</td>
</tr>
<tr>
<th>自己紹介</th>
<td>
<textarea name="question" rows="3" cols="40"></textarea>
</td>
</tr>
</table>
<input type="submit" value="送信" class="btn">
</form>
</div>
</body>
</html>


《style.css

@charset "UTF-8";

body{
  background-color:#F9F9F9;
  font-size: 16px;
  color:#333;
  padding:30px 0 0 30px;
}
h1{
  font-size: 130%;
  margin:0 0 15px;
  padding: 2px 0 2px 3px;
  border-left:#008000 5px solid;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  border:#93C400 1px solid;
  width: 420px;
}
th,td{
  padding: 5px 10px;
  border: #93C400 1px solid;
}
th{
  background:#E9F3CC;
  font-weight:normal;
}
td{
  background-color: #F8FBEC;
}
input.btn{
  text-align:center;
  font-size:90%;
  width:50px;
  margin:10px auto 0;
}
.btn {
  color: #333;
  border: 1px solid #AAA;
  cursor: pointer;
  background: #EEE;
  padding:3px 12px;
}
.btn:hover {
  color: #666;
  background: #FFF;
}


《output.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>入力フォームあれこれ</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>入力フォームあれこれ</h1>
<p>ご協力ありがとうございました。</p>
<table>
<tr>
<th>氏名</th>
<td><?php print htmlspecialchars( $_POST[ 'name' ], ENT_QUOTES ); ?></td>
</tr>
<tr>
<th>好きな色</th>
<td><?php print htmlspecialchars( $_POST[ 'color' ], ENT_QUOTES ); ?></td>
</tr>
<tr>
<th>性別</th>
<td><?php print htmlspecialchars( $_POST[ 'gender' ], ENT_QUOTES ); ?></td>
</tr>
<tr>
<th>趣味</th>
<td><?php print htmlspecialchars( implode(  '', $_POST[ 'hobbies' ] ), ENT_QUOTES ); ?></td>
</tr>
<tr>
<th>自己紹介</th>
<td><?php print nl2br( htmlspecialchars( $_POST[ 'question' ], ENT_QUOTES ) ); ?></td>
</tr>
</table>
</body>
</html>

授業

《input.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>お問い合わせフォームとアンケートフォーム</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="content">
<h1>フォーム部品色々</h1>
<table>
<form action="output.php" method="post">
<tr>
<th>名前</th><td><input type="text" name="name" size="30" maxlength="15" autofocus placeholder="お名前" required></td>
</tr>
<tr>
<th>メールアドレス</th><td><input type="email" name="email" size="49" placeholder="メールアドレス" required></td>
</tr>
<tr>
<th>性別</th><td><label><input type="radio" name="gender" value="男性" checked>男性</label><br><label><input type="radio" name="gender" value="女性">女性</label></td></tr>
<tr><th>好きな色</th><td><select name="color">
  <option value="">以下の中から選択してください</option>
  <option value="白"></option>
  <option value="黒"></option>
  <option value="赤"></option>
  <option value="青"></option>
  <option value="黄"></option>
  <option value="緑"></option>
  <option value="その他">その他</option>
</select></td>
</tr>
<tr>
<th>趣味</th><td> <label><input type="checkbox" name="hobbies[]" value="スポーツ">スポーツ</label><br>
<label><input type="checkbox" name="hobbies[]" value="映画">映画</label><br>
<label><input type="checkbox" name="hobbies[]" value="音楽">音楽</label><br>
<label><input type="checkbox" name="hobbies[]" value="読書">読書</label><br>
<label><input type="checkbox" name="hobbies[]" value="ショッピング">ショッピング</label><br>
<label><input type="checkbox" name="hobbies[]" value="旅行">旅行</label></td>
</tr>
<tr>
<th>自己紹介</th><td><textarea name="intro" cols="25" rows="4" required></textarea></td>
</tr>
</table>
<input type="submit" value="送信" name="submit">
</form>
</div>
</body>
</html>


《style.css

@charset "UTF-8";

#content {
  width: 500px;
  margin: 0 auto;
}
table {
  width: 500px;
  border: 1px solid #333;
  border-collapse: collapse;
}
th, td {
  border: 1px solid #333;
  padding: 10px;
}
th {
  width: 115px;
  text-align: left;
}


《output.php

<?php
  $name = htmlspecialchars( $_POST[ 'name' ], ENT_QUOTES );
  $email = htmlspecialchars( $_POST[ 'email' ], ENT_QUOTES );
  $gender = htmlspecialchars( $_POST[ 'gender' ], ENT_QUOTES );
  $color = htmlspecialchars( $_POST[ 'color' ], ENT_QUOTES );
  $hobbies = htmlspecialchars( implode(  '', $_POST[ 'hobbies' ] ), ENT_QUOTES ); 
  $intro = nl2br( htmlspecialchars( $_POST[ 'intro' ], ENT_QUOTES ) );
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>入力された値を表示</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="content">
<h1>入力された値を表示</h1>
<p>ご協力ありがとうございました。</p>
<table>
<tr>
<th>氏名</th>
<td><?php print $name; ?></td>
</tr>
<tr>
<th>メールアドレス</th>
<td><?php print $email; ?></td>
</tr>
<tr>
<th>性別</th>
<td><?php print $gender; ?></td>
</tr>
<tr>
<th>好きな色</th>
<td><?php print  $color; ?></td>
</tr>

<tr>
<th>趣味</th>
<td><?php print $hobbies; ?></td>
</tr>
<tr>
<th>自己紹介</th>
<td><?php print $intro; ?></td>
</tr>
</table>
</div>
</body>
</html>