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で制御しないといけないので何とか分かれば教えてほしいです。
最低限必要な部分だけ纏めて単独で動くものを作ってみました。
あとはそちらの環境に合わせて改良してください。
<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>
htmlspecialcharsってことは…サーバーサイドはphp?
phpでソートしてhtmlを作ってるならば、
$_POST['sort_order'] の値で条件分岐するだけですが…
はてなの仕様で質問文の一部が欠けたりすることもあるので、
コメント欄に書き直すなどで、追加情報プリーズです。
>javascriptで制御しないといけない
php側の改造は無理ということであればクッキー利用ですね。
javascriptでやることは次の二つです。
1. location.href を行う前にsort_orderをクッキーに保存すること
2. ページが表示されたら真っ先にクッキーを読み取ってsort_orderにチェックを入れること
やることは2つだけですが、質問文のコードにあいかわらず意味不明な点があり、
下手に回答を書くと、もっとややこしくなると思われ、ヒントのみで私は去ります。
ヒントページでもいいので教えていただけません。
tの変数の値だけクッキーに保存したいと思っています。
そのtの値をもとにOPTIONのselectedを決めたいと思っています。
document.cookieやifを入れるまでは分かったのですが、サンプルページがなく苦戦しています。