• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プルダウン 値保持 onchange)

年月のプルダウンを作成して再読み込みした際に選択した値を保持する方法

このQ&Aのポイント
  • PHPを使用して年月のプルダウンを作成しましたが、再読み込みした際に選択した値を保持する方法について教えてください。
  • フォームをHTMLに埋め込み、年プルダウンと月プルダウンを作成しました。onChangeでプルダウンの選択に応じて再読み込みするようにしていますが、再読み込み後も選択した値が保持されません。
  • 選択した年月の値を保持する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

<?php //スクリプトを確認させていただいた上で、 //可読性を加味して、作り直します。 //一旦、もしこのスクリプトがPOSTされていたら、 //POSTされた値を受け取ります。 $year = ""; $month= ""; if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') { $year = isset($_POST['year']) ? $_POST['year'] : ""; $month= isset($_POST['month'])? $_POST['month'] : ""; } ?> <form action="<?php $self ?>" method="POST"> <select name = "year" onChange="javascript:submit()"> <option value="">選択してください</option> <?php foreach (range(2000, date('Y')+1) as $y) : //目的が明確なのでrange関数で数値の範囲を取った方が見やすいかと?> <?php $selected = ($y == $year) ? ' selected="selected"' : " ";?> <option value="<?php echo $y ?>"<?php echo $selected?>><?php echo $y ?>年</option> <?php endforeach; ?> </select> <?php //POSTされる値は数値部分のみがほしいと読み取れますので、 //コレについても配列で初期化しなくても良いのではないでしょうか。 //$a = array('1月', '2月', '3月', '4月', '5月', '6月', //'7月', '8月', '9月', '10月', '11月', '12月'); ?> <select name = "month" onChange="javascript:submit()"> <option value="">選択してください</option> <?php foreach (range(1, 12) as $m) :?> <?php $selected = ($m == $month) ? ' selected="selected"' : " ";?> <option value="<?php echo $m ?>"<?php echo $selected?>><?php echo $m ?>月</option> <?php endforeach; ?> </select> </form> <?php //いかがでしょうか。 ?>

losloson
質問者

お礼

すごい凄すぎます汗 まさに理想としていた動きをしてくれました( ノД`) 頑張って読み解いていこうとおもいます!! ありがとうございました!!

関連するQ&A