人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptでselect optionで選択した値をもとに location.hrefでそのページを読み直して、さらに選択した値をselectedで残したいのですがどうやったら可能でしょうか?


js
function sort(){

var t = document.sort.select.selectedIndex;

var cn = "keyword";

location.href = "/search/" + se + "/sort?&limit=20&page=1&sort_order=" + htmlspecialchars(t,ENT_QUOTES);

}

html
<select onchange="sort(this)" name="select">
<option value="DESC">価格が安い順</option>
<option value="ASC">価格が高い順</option>
</select>



追記:
サーバーサイドはPHPで、htmlとPHP両方のファイルで構成されているページで
この部分はjavascriptで制御しないといけないので何とか分かれば教えてほしいです。

●質問者: たつ
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど

最低限必要な部分だけ纏めて単独で動くものを作ってみました。
あとはそちらの環境に合わせて改良してください。

<html>
<head>
 <meta http-equiv="content-script-type" content="text/javascript">
 <script type="text/javascript">
 <!--
 // 変数初期化
 var t = '';
 // クッキー取得
 if (navigator.cookieEnabled) {
 var cs = document.cookie.split('; ');
 for ( var i = 0; i < cs.length; i++ ) {
 var v = cs[i].split('=');
 if ( v[0] == 'sort_order' ) {
 t = v[1];
 }
 }
 } else {
 alert('クッキー利用不可');
 }
 // ソート
 function sort(obj){
 var t = obj.selectedIndex;
 var e = new Date(); // 現在時刻の取得
 e.setMinutes( e.getMinutes() + 2 ); // 有効期限は2分後とする
 document.cookie = 'sort_order=' + t + '; expires=' + e.toGMTString() + ';';
 location.reload(true); // テスト用なので単純にリロード
 }
 // スタートアップ
 function start_up(){
 document.forms['option_select']['output'].value = t; // テスト出力
 document.forms['option_select']['sort_order'].options[t].selected = true;
 }
 //-->
 </script>
</head>
<body onload="start_up()">
 <form name="option_select">
 <select onchange="sort(this)" name="sort_order">
 <option value="DESC">価格が安い順</option>
 <option value="ASC">価格が高い順</option>
 </select>
 <input type="text" name="output" value="" />
 </form>
</body>
</html>

たつさんのコメント
ありがとうございます。試してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ