[PHP]セレクトボックスとforループ

写経パート11!

今日は、前回のセレクトボックスの続きですが、選択肢が数字などで、さらにたくさんあるとき。

例えば、誕生月を聞く場合なんかそうですよね。

12ヶ月分の「optionタグ」を作るのは大変です。そこで、ループ処理をしてみました。

今回はfor文を使ったループ処理です。

ソースは以下の通りです。

syakyou011-1.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>写経11</title>
</head>
<body>
<p>誕生月は、いつですか?</p>
<form action="syakyou011-2.php" method="post">
<select name="month">
<?php
for ($i=0; $i<12; $i++){
    echo '<option value="',$i+1,'">',$i+1,'</option>';
}
?>
</select>
<p><input type="submit" value="確定"></p>
</form>
</body>
</html>

syakyou011-2.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>写経11</title>
</head>
<body>
<?php
echo $_REQUEST['month'],'月ですね。聞いただけです!';
?>
</body>
</html>

実行すると…

ちゃんと、1~12月分の選択肢が出てきました。

私は10月生まれなので、10を選択して、確定すると…

自分でプログラムしておいてなんですが、やや腹の立つ返答です。

これで、連続する整数なんかの選択肢は、かなり短く記述できます。

選択肢100個でも、forの中身をいじってやれば、簡単です!

次回からは、このループを違う方法で書いてみます。

参考:確かな力が身につくPHP「超」入門(Informatics & IDEA)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする