HTML文ですが、これをPHPでループで回して無駄なコーディングを直したい。 どうしたらいいですか?
HTML文ですが、これをPHPでループで回して無駄なコーディングを直したい。 どうしたらいいですか? <select name="nhour"> <option value="0" <?php if($nhour == '0') echo"selected"; ?>>0</option> <option value="1" <?php if($nhour == '1') echo"selected"; ?>>1</option> <option value="2" <?php if($nhour == '2') echo"selected"; ?>>2</option> <option value="3" <?php if($nhour == '3') echo"selected"; ?>>3</option> <option value="4" <?php if($nhour == '4') echo"selected"; ?>>4</option> <option value="5" <?php if($nhour == '5') echo"selected"; ?>>5</option> </select>
PHP・46閲覧
ベストアンサー
普通に forループで書くだけだと思いますが・・・ <select name="nhour"> <?php for ($i=0; $i<6; $i++) printf('<option value="%d"%s>%d</option>' . PHP_EOL, $i, $i == $hour ? ' selected' : '' , $i); ?> </select> 例えば $hour = 4; として実行すると <select name="nhour"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4" selected>4</option> <option value="5">5</option> </select> が出力されます。
(蛇足) option要素のvalue属性と要素内の文字列が同じなら、value属性は省けます。 https://developer.mozilla.org/ja/docs/Web/HTML/Element/option for ($i=0; $i<6; $i++) printf('<option%s>%d</option>' . PHP_EOL, $i == $hour ? ' selected' : '' , $i);
質問者からのお礼コメント
ありがとうございます^_^
お礼日時:1/19 16:14