2

次のような選択リストがあるとします。

<select name='languages'>
    <option value='german'>German</option>
    <option value='english'>English</option>
</select>

ユーザーが言語を選択したときに javascript/jQuery を使用してページを更新し、ユーザーが選択するたびに名前付きパラメーター スタイルパラメーターを URL の末尾に追加するにはどうすればよいですか。たとえば、ユーザーがドイツ語を選択した場合、URL はのように見える:

http://my_app/my_controller/my_action/language:select_option_value_for_german

ユーザーが英語を選択した場合、URL は次のようになります。

http://my_app/my_controller/my_action/language:select_option_value_for_english

そのため、ユーザーが選択を行うたびに、同じページが更新され、URL の末尾に名前付きパラメーターが追加されます。

: 名前付きパラメーターをリクエストごとに 1 回だけ表示するようにしたい、つまり、次のように URL の最後でそれらを繰り返させたくない:

http://my_app/my_controller/my_action/language:select_option_value_for_german/language:select_option_value_for_english

どんな助けでも大歓迎です

ありがとうございました

4

2 に答える 2

3

js ファイルで、選択時に変更イベントをリッスンして URL を構築し、構築された URL に移動します。

$('select[name="languages"]').change(function(){
    var url ="/my_app/my_controller/my_action/language:" + $(this).val();
    window.location = url;
});​​​

選択ボックスをデフォルト値で変更して、更新するたびにドイツ語を選択できるようにします。更新するたびにデフォルトがドイツ語になっていることに気付きません。そのため、常に英語が表示されます

<select name='languages'>
    <option>Select language</option>
    <option value='german'>German</option>
    <option value='english'>English</option>
</select>
于 2012-06-08T02:36:53.820 に答える
0
$('select[name="language"]').on('change', function() {
    var pn = window.location.protocol +
             window.location.hostname +
             window.location.pathname +
             window.location.hash;
    window.location.assign(pn + '?language=' + $(this).val());
});
于 2012-06-08T03:09:45.443 に答える