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

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

プルダウン 値保持 onchange

失礼します、現在年月のプルダウンを作成しており プルダウン自体は年月の作成ができなのですが再読み込みした際に プルダウンに選択した値を保持して欲しいです。 現在リダイレクト先を自身にしております。また、onChangeでプルダウンをした際に読み込むようにしています。 ご教授頂きたいです。宜しくお願い致します。 htmlに埋め込んでいるので読みにくいかと思いますがご了承ください <form action="<?php $self ?>" method="POST"> <select name = "year" onChange="javascript:submit()"> <?php for ($y = 2000; $y < date(Y)+1; $y++) :?> <?php if($s == 0) : ?> <option value="<?php echo $y ?>">選択してください</option>; <?php ++$s ?> <?php endif; ?> <option value="<?php echo $y ?>"><?php echo $y ?></option> <?php endfor; ?> </select> <?php $a = array('1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'); ?> <select name = "month" onChange="javascript:submit()"> <?php foreach ($a as $key => $value) :?> <?php $b = $key + 1 ?> <?php if($h == 0) : ?> <option value="<?php echo $y ?>">選択してください</option> <?php ++$h ?> <?php endif; ?> <option value="<?php echo $b ?>"><?php echo $value ?></option> <?php endforeach; ?> </select> </form>

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答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

  • プルダウンメニューで値を渡したいのですが

    すみません。今phpとhtmlであるサイトを作っているのですが プルダウンメニューを選択した後、ボタンを押すことなく選択した途端ページ移動 して、値を持って行きたいのですがjavascriptはまったく知らないためやり方がわかりません。 いろいろググってそれらしいスクリプトを見つけたのですが以下だとまったく動的に反応しません。 (ページも移動しません) 最終的にpost[ffa]に値であるniやameなどを入れたいのですがどこをどういじれば良いでしょうか・・。 <form name="ffa" method="post" action="abc.php"> <script type="text/javascript"> <select name="sel1" onChange="document.forms['ffa'].submit()" > <option value="ni">日本</option> <option value="ame">アメリカ</option> <option value="igi">イギリス</option> <option value="su">スウェーデン</option> </select> </script>

  • 2段プルダウンの値の保持について(html)

    2段プルダウンの値の保持について(html) お世話になっております。 WEBページにてエントリーフォームを作成しております。 base.html(エントリー画面) base_ck.php(確認画面) Aプルダウン(都道府県) Bプルダウン(所属名) MySQLよりPHPで先にBプルダウンの値を計算しておきます。 Aプルダウンを選択したのち、Aのvalue値をキーとしてBプルダウンの値を計算(javascript)しております。 ここまでは問題ないのですが、確認画面から戻る(submit)と、Bプルダウンの値が消えて選択もできなくなります。 今までは運用でごまかしておりましたが(Aプルダウンで一旦違う値を選択し再度選びなおすとBプルダウンが復活する)、 クライアントより修正依頼がきてしまいました。 PHP・HTMLは何とか書けるのですが、JavaScriptはど素人で、このプログラムもネットから情報を拾い集めて何とかできました。 ご教授いただければ幸いです。 サンプルコードは以下となります。 「base.html(エントリー画面)」 <html lang="ja"> <head> <title>テストページ</title> <script type="text/javascript"> <!-- データベースよりJavaScriptにて「所属名」を配列に格納する belong_value = new Array(); belong_text = new Array(); belong_length = new Array(); <?php   //ここでBプルダウンの値を計算して配列に格納する。   //データサンプル //belong_value[11] = new Array("0","1001","1002");   //belong_length[11] = 3; //belong_text[11] = new Array("---","北海道","北海道倶楽部","札幌クラブ"); ?> function BelongList(idx){ //選択リストに項目を追加 for(i=0;i<belong_length[idx];i++){ document.form_kojin.belong.length=belong_length[idx]; document.form_kojin.belong.options[i].text = belong_text[idx][i]; document.form_kojin.belong.options[i].value= belong_value[idx][i]; } //選択リストがブランクの場合 if(i==0){ document.form_kojin.belong.length=1; document.form_kojin.belong.options[i].text = "---"; document.form_kojin.belong.options[i].value= 0; } } //--> </script> </head> <body> <div id="wrapper"> <div id="main"> <h1>申込ページ</h1><br /> <?php $action_ck = "https://aaa/base_ck.php"; ?> <h2></h2> <div class="main-frame"> <p><span class="style-indispensable">※必須項目</span></p><br /> <form name="form_kojin" action="<?php echo htmlspecialchars($action_ck, ENT_QUOTES); ?>" method="post"> <table> <tr> <th class="th-style"> <div><span class="style-indispensable">※</span>都道府県</div> </th> <td class="td-style"> <SELECT autofocus size="1" name="branch_name" id="branch_name" onChange="BelongList(this.options[selectedIndex].value);"> <OPTION value="0">---</OPTION> <OPTION value="11">北海道</OPTION> <OPTION value="21">青森県</OPTION> <OPTION value="22">岩手県</OPTION> </SELECT> </td> </tr> <tr> <th class="th-style"> <div><span class="style-indispensable">※</span>所属名</div> </th> <td class="td-style"> <SELECT size="1" name="belong" id="belong"><!-- BelongList関数より自動生成 --> <OPTION value="0">---</OPTION> </SELECT> </td> </tr> </table> <br /><br /> <div> <input name="submit" type="submit" value=" 入力確認画面へ " class="button-05"> </div> </form> </div> </div> </div> </body> </html>

  • WEB画面におけるプルダウンメニューで選択した値の保持

    web画面において、各頁にプルダウンメニューを設定し、そこから各頁へジャンプさせたいと思っています。 TOP画面のプルダウンメニューを [選択して下さい]→[pageA]→[pageB]とし、 top画面のプルダウンメニューより[pageA]を選択した場合 pageAのプルダウンメニューでは [選択して下さい]ではなく、[pageA]が表示させたいのですが この場合、どうすれば宜しいのでしょうか? 私が組んだソースは下記の通りですが 下記の場合だと、各頁にジャンプ後も [選択して下さい]が表示されてしまいます。 <form> <select onchange="location.href = options[this.selectedIndex].value;">    <option value="#">選択して下さい。</option> <option value="pageA.html">pageA</option> <option value="pageB.html">pageB</option> </select> </form> 初心者の為、ご教授頂けると助かります。

  • プルダウンの値をphpファイルへ渡したい

    いつもお世話になっております。 現在、作成中のHPですが、データ取得をphpで行い表示をしています。 (1)a.phpでプルダウンのデータを取得し、b.phpで表示。 (2)b.phpでプルダウンを選択し、その値をtest.phpへ渡す。 (2)で、プルダウンの値を渡す処理がどうしてもうまくできず、 とても困っています。 どこを修正すればよいのかご教授願いたいのですが・・・。 スクリプトは下記の通りです。 ------------------------------------------------------- 【b.php】 <html> <head> <title>テスト</title> </head> <body> <SCRIPT language="JavaScript"> function testphp(){ try{ with(document.testform){ action="http://test/test.php"; test.value = testform.testselect[testform.testselect.selectedindex].value; method="POST"; submit(); } } catch(e) { alert("エラーは " + e.description + " です。"); } } </SCRIPT> <form name="testform" onchange="testphp()"> <select name="testselect"> <option value="あ">結果1</option> <option value="い">結果2</option> <option value="う">結果3</option> <option value="え">結果4</option> <option value="お">結果5</option> </select> </form> </body> </html> 【test.php】 <?php //変数処理 $a = @$_POST["test"]; print "渡された値:".$a; exit; ?> ------------------------------------------------- どうぞ、宜しくお願い致します。

  • プルダウンメニューの利用

    htmlのプルダウンメニューを使用した値計算のインタフェースを作成したいと思っています。 プルダウンメニューに設定するメニュー項目に値を設定し、 onChangeを使用して、その値だけをPHPプログラムに渡すようにしたいのですが、 JavaScript部分をどのように書けばいいのか判りません。 どなたかご教授お願いいたします。 <form name="formtest" action="test.php" method="post"> <table> <tr> <th>カテゴリ*</th> <td> <SELECT NAME="iPlanet" onchange=""> <OPTION VALUE="9" selected>初期値 <OPTION VALUE="0">サンプル1 <OPTION VALUE="1">サンプル2 </SELECT> </td></tr> </table> </form> onchangeでValueの値をPHPに送りたいのです。 よろしくお願いします。

  • プルダウンで選択された値を保持

    お世話になります。 PHPとMysqlでプログラムを作成しています。 プルダウンメニューを選択し、Submitボタンを押した後も選択された値を保持したままの状態にしたいのです。 以下のようなプログラムでdata2の場合だと保持ができますが、dataの場合は「すべて」に戻ってしまいます。 以上・未満を使用する場合の値の保持はどのようにすればよいのでしょうか? 宜しくお願い致します。 <select name='data'> <option value=' ' <?php if($data==" "){print " selected";} ?>>すべて <option value=' AND (data >= 1.8 AND data < 2.0) '<?php if($data>=1.8 AND $data < 2.0){print " selected";} ?>>1.8GHz以上 2.0GHz未満</option> <option value=' AND (data >= 2.00) '<?php if($data>=2.00){print " selected";} ?>>2.0GHz以上</option> <option value=' AND (data >= 2.80) '<?php if($data>=2.80){print " selected";} ?>>2.8GHz以上</option> </select> <select name='data2'> <option value='%' <?php if($data2=="%"){print " selected";} ?>>すべて <option value='1MB'<?php if($data2=="1MB"){print " selected";} ?>>1MB</option> <option value='2MB'<?php if($data2=="2MB"){print " selected";} ?>>2MB</option> </select> <input type="submit" value="絞り込む" name="submit1">

    • ベストアンサー
    • PHP
  • プルダウンを2個選び、その結果に基づき、値を返す。

    プルダウンを2個選び、その結果に基づき、値を返したいです。 以下はそのhtml文です。 <!DOCTYPE html> <html> <head> <title>プルダウンのメニューを表示を2つ設定</title> <script> function selectboxChange() { var value1 = document.forms.form1.Select1.value; var value2 = document.forms.form11.Select11.value; var target = document.getElementById("output11"); if ((value == "要素1")&&(value == "要素11")) { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } //--------------------- // </script> </head> <body> <div>プルダウンのメニュー1</div> <form name="form1" action=""> <select id="Select1" onchange="selectboxChange();"> <option>---</option> <option value="要素1">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div>プルダウンのメニュー2</div> <form name="form11" action=""> <select id="Select11" onchange="selectboxChange();"> <option>---</option> <option value="要素11">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output11"></div> </body> </html> プルダウンを2個紐づけたいのですが、var value=document.formsの文言を紐づけようとしましたが、 紐づけができません。 ですので、打開案をご教授願えたら幸いです。

  • 2つのプルダウンを連動させて、selectedで選択状態にしたい

    JavaScript初心者です。 今、phpとMySQLとJavaScriptで車の情報を登録する画面を作っています。 1つのプルダウンが選択後、もうひとつのプルダウンを表示するのですが、 入力画面から確認画面へ移って、history.backでもう一度入力画面にもどったときに、 選択された状態で表示したいのです。 下記のmakerは、値をセッションで受け取り、selectedをつける指示を したので、 選択状態にすることができました。 もう一つのcarnameがどうしたらよいか分かりません。 どうかご教授お願い致します。 <head> <script type="text/javascript"> <!-- var area=0; function setArea(n) { area=n; carnameItem = [ //トヨタ ['カローラ','クラウン','セルシオ'], //ニッサン ['シーマ','エルグランド','ローレル'], len = document.form1.carname.options.length; for (i=len-1; i>0; --i)document.form1.carname.options[i] = null; if(n!=0){ document.form1.carname.style.visibility = "visible"; for (i=0; i<carnameItem[n-1].length; i++)document.form1.carname.options[i+1] = new Option(carnameItem[n-1][i]); } setPref(0); } //--> </script> </head> <body> <form name="form1"> <select name="maker" onChange="setArea(this.selectedIndex)"> <option value="0"<?php echo $selected1?>>▼選択してください</option> <option value="1"<?php echo $selected1?>>トヨタ</option> <option value="2"<?php echo $selected2?>>ニッサン</option> </select> <select name="carname" onChange="setPref(this.selectedIndex)"><option value="0" selected>▼選択してください</option></select> </form>

  • 複数 selectフォームから今回onchangeで変更した項目を知りたい

    phpプログラムで、画面上にある複数のselectフォームを使用してselectフォームの内容が選択されれば、selectフォームの値を取得してデータの 抽出を行い、選択された内容の表示を行なおうと思っています。 onChange='submit()' で選択された内容をpostで受け取って再表示を行い、項目にあったデータを取り出すことは出来てますが、直近に変更された項目が何か(どのselectフォームの内容(年度、組織、社員及び商品の項目)が変更されたのか?)を知りたいのですが、いい方法を教えていただけないでしょうか? よろしくお願いします。 sample.phpの内容 <?php $nen = $_POST['nend']; $sosi = $_POST['so']; $syin = $_POST['sa']; ?> <html> <body> <form action="sample.php" method="post"> <select name='nend' onChange='submit();'> <option value=2007 selected>2008</option> <option value=2006>2007</option> <option value=2005>2006</option> </select> <select name='so' onChange='submit();'> <option value=0 selected>全社</option> <option value=01 >本社</option> <option value=02 >A支店</option> <option value=03 >B支店</option> </select> <select name='sa' onChange='submit();'> <option value=0 selected>社員</option> <option value=1 >田中</option> <option value=2 >佐藤</option> <option value=3 >鈴木</option> </select> <select name='sy' onChange='submit();'> <option value=0 selected>商品</option> <option value=1 >A商品</option> <option value=2 >B商品</option> <option value=3 >C商品</option> </select> </form> </body> </html>

    • ベストアンサー
    • PHP
  • プルダウンのoptionの表示・非表示はできますか?

    JavaScriptを使ってプルダウン操作をしております。 一つ目のプルダウンで選択したあと2つ目のプルダウンのoptionの部分だけ表示・非表示をしたいのです。そんなことはできるのでしょうか? 下のソースで説明しますが、一つ目のリストで「あいうえお」を選択した時点で2つ目の選択リストの「ひらがな1」と「ひらがな2」だけを選択できるようにしたいのです。「カタカナ1」「カタカナ2」は非表示もしくは選択不可にできればいいのですが。 一つ目のプルダウンリスト <select name="formtype" onchange="form_indicate();"> <option value="AAA">あいうえお <option value="BBB">アイウエオ </select> 二つ目のプルダウンリスト <select name="formtype2"> <option value="aaa">ひらがな1 <option value="bbb">ひらがな2 <option value="ccc">カタカナ1 <option value="ddd">カタカナ2 </select>

専門家に質問してみよう