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 末尾添加命名参数。

注意:我希望命名参数在每个请求中只出现一次,换句话说,我不希望它们在 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 回答