ここから本文です

<option value="1951" <?= $_POST['year'] === '1951' ? ' selected' : ''; ?>>195...

fas********さん

2014/11/1611:41:41

<option value="1951" <?= $_POST['year'] === '1951' ? ' selected' : ''; ?>>1951</option>

上記のタグを1951〜2014までphpのwhileを使って作成したいのですが、うまくいきません。

どなたか教えていただけませんでしょうか?

よろしくお願いいたします。

閲覧数:
41
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

mpywさん

2014/11/1613:24:41

<?php
$year = filter_input(INPUT_POST, 'year'); // $_POST['year']を安全に
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html>
<body>
<form action="" method="post">
<select name="year">
<?php foreach (range(1951, 2014) as $y): ?>
<?php printf('<option value="%1$d"%2$s>%1$d</option>' . PHP_EOL, $y, $year == $y ? ' selected' : ''); ?>
<?php endforeach; ?>
</select>
</form>
</body>
</html>

  • 質問者

    fas********さん

    2014/11/1614:47:10

    変数も含めて、全て文字列として出力したいのですが、どのようにすべきでしょうか?
    echoで出力したものをそのままHTMLにコピペして使用しようと思っています。(html入力の手間を省く為)

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

nao********さん

2014/11/1616:18:52

PHPのコードをCodePadに全文を貼り付けてください。

koj********さん

2014/11/1616:02:42

<?php for($i=1951;$i<=2014;$i++){ ?>

<option value="<?php echo $i;?>" <?php echo ($_POST['year']==1951)? "selected='selected'": ""; ?> >
<?php echo $i;?>
</option>

<?php } ?>

あるいは

<?php

$html = "";

for($i = 1951; $i <= 2014; $i++){

$html .= "<option value='$i' ";
$html .= ($_POST['year']==1951)? "selected='selected' " : "";
$html .= "> $i </option>";

}

?>

echo $html;

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる