php - 使用 Javascript/jQuery 获取基于段的 URL 中的查询字符串

标签 php javascript jquery codeigniter

我正在使用一个 PHP 框架 Codeigniter,它使用基于段的 url,例如 http://www.mydomain.com/age/11/name/john/color/red 而不是通常的查询字符串lijke http://www.mydomain.com/index.php?age=11&name=john&color=red

如何使用 Javascript/jQuery 从 url 中获取 age 键的值?

获取值 11 后,我将在触发事件时将其传递给 jQuery 对象。

$( "#searchdistance_slider" ).slider({
        range: "min",
        value: 5,
        min: 0.5,
        max: 10,
        slide: function( event, ui ) {
            $( "#search_distance" ).val(ui.value + " miles");
            window.location.replace("http://www.domain.com/" + age); 
            /* passing the value of age into URL to redirect to */
        }
    });

更新

  • 键/值对可以改变位置,URL中键/值对的数量不固定
  • 我需要在 Javascript 中获取值,因为用户使用 slider 更改特定值,比如 age,以及新值 20 slider 将用于将用户重定向到 http://www.mydomain.com/age/20/name/john/color/red

最佳答案

您可以尝试使用 jQuery URL parser插件。

使用 .segment(n) 调用搜索 "age" 的 URL 路径,并获取下一个应该包含您要查找的年龄值的值为。

如果 age 始终处于同一位置,则尝试使用 .fsegment(n) 方法。

或者将 .segment() 与类似的东西一起使用:

var parts = $.url(your_url).segment();
var params = [];
for (var i=0; i<parts.length/2; i++) {
   params[parts[2*i]] = parts[2*i+1];
}
var age = parseInt(params['age']);

(我确信有更漂亮的方法可以做到这一点。)

如果您只想要age 部分,则不必将所有这些都塞进字典。找到所需的 key 后,尽早退出循环即可。

如果你想重建年龄改变的路径,试试这样的:

var parts = $.url(your_url).segment();
var newpath = '';
for (var i=0; i<parts.length/2; i++) {
  if (parts[2*i] == 'age') {
    newpath += '/age/' + (parseInt(parts[2*i+1]) + 42); // put your age modifiy
                                                        // code here
  } else {
    newpath += '/' + parts[2*i] + '/' + parts[2*i+1];
  }
}
alert(newpath);

关于php - 使用 Javascript/jQuery 获取基于段的 URL 中的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485310/

相关文章:

javascript - setSelectionRange 移动光标,不选择

jquery - 是否可以使用 jQuery .on 和悬停?

php - Symfony 5 : @IsGranted on method annotation doesn't work on inherited role

php - mysql中的字符编码问题

javascript - 将多个 Controller 中的 AngularJS 范围对象合并为一个对象

Javascript submit() 不会触发表单提交

javascript - 使用 Mocha 和 es6 : Unexpected token "import" 进行测试

php - brew 链接 php71 : Could not symlink sbin/php-fpm

php - 内存不足,Mysql_query() 无法保存结果集

jQuery 选择性悬停