やりたいこと
ページ読み込み時
javascriptで作成した
プルダウンの値を選択されている値で固定したい。
画面の操作として
年月日がプルダウンで表示されており
そのプルダウンを選択し検索を押下すると
getでその年月日のデータを表示するというページです。
問題点として
2017/09プルダウンを選択して検索を押すと
画面は切り替わるのですがプルダウンがデフォルトの現在の(質問日2017/08/31)
2017/08を選んだ状態になってしまします。
プルダウンをphpで作成していたときはうまく動作していたのですが
今回javascrip にてプルダウンのオプションを作成しているので
その場合のプルダウンの固定はどうすればよろしいのでしょうか?
$search_cond['created_at']に
選択した日付データが入っています。
php
1 <?php echo Form::open(array("action" => "","method"=>"get", "id" => "form1"))?> 2 <select name="created_at" id="form_created_at"></select> 3 <?php echo Form::submit("form_submit","検索",array("onclick" => "do_search($club_member->id)")) ?> 4 <?php echo var_dump($search_cond['created_at']) ?> 5 <?php echo Form::close()?>
html
1html化したコード 2<form action="" method="get" id="form1" accept-charset="utf-8"> 3<select name="created_at" id="form_created_at"></select> 4<input onclick="do_search(6)" name="form_submit" value="検索" type="submit" id="form_form_submit" />
js
1 function do_search(id) 2 { 3 $("#form1").attr("action","/hogehoge/"+id) 4 } 5 6var optionYMCreate, this_day, this_month, this_year, today,this_ym; 7 today = new Date(); 8 this_year = today.getFullYear(); 9 this_month = today.getMonth() + 1; 10 this_ym = this_year +'/'+this_month; //今月 11 12 //年月オプションを作る 13 optionYMCreate = function(ystart,yend, id) { //年の範囲と対象のコントロールIDを受け取る 14 var i, opt,m_i,ym,selected_option ; 15 opt = null; 16 for (i = ystart; i <= yend ; i++) { //年のループ 17 for(m_i=1;m_i<=12;m_i++){ //月のループ 18 ym = i +'/'+ m_i; //ループ内の年月 19 selected_option = ''; 20 if (ym === this_ym) { //今年月と一致してたら選択済みとする 21 selected_option = 'selected'; 22 } 23 opt += '<option value="' + ym + '" '+selected_option+'>' + ym + '</option>'; 24 } 25 } 26 return document.getElementById(id).innerHTML = opt; 27 }; 28 29 optionYMCreate(2017, this_year, 'form_created_at');
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/31 07:39
2017/08/31 07:57 編集
2017/08/31 07:59
2017/08/31 08:20
2017/08/31 08:21