2

我目前有一个关联数组urlvalue,其值如下:

{"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"}

我想将此数组转换为 URL,以便我可以将变量发送到另一个页面。如何使用 jquery 来完成,使它们看起来像这样:

?folder=subscriber&file=setstatus&alert=yes&id=12

谢谢

4

7 回答 7

8

你需要jQuery.param()

var params = {"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"};
var str = jQuery.param(params);
于 2013-08-08T11:39:40.107 回答
4

使用

$.param(值)

功能。

例子:

var obj = {"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"},
    toParam= $.param(obj);

alert(toParam);

输出:

文件夹=订阅者&文件=setstatus&alert=yes&id=12

填充物:http : //jsfiddle.net/BGjWT/

于 2013-08-08T11:40:11.073 回答
1

您可以使用该map方法将每个键值对转换为字符串,然后将字符串数组连接为单个字符串。使用该encodeURICompontent函数正确编码键和值:

var urlvalue = {"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"};

var param = '?' + $.map(urlvalue, function(v, k) {
    return encodeURIComponent(k) + '=' + encodeURIComponent(v);
}).join('&');

alert(param);

演示:http: //jsfiddle.net/Guffa/sCn5U/

于 2013-08-08T11:40:45.240 回答
1

您可以使用以下http_build_query()功能:

http://phpjs.org/functions/http_build_query/

于 2013-08-08T11:42:49.697 回答
0

尝试这个:

var test = {"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"};
var queryString = "?folder=" + test.folder + "&file=" + test.file + "&alert=" + test.alert + "&id=" + test.id + "";
alert(queryString);

小提琴

于 2013-08-08T11:41:06.163 回答
0

如果您不介意使用插件,那么有一些不错的插件可以完成这项工作。

于 2013-08-08T11:42:16.013 回答
0

根本不涉及 jQuery 的可能解决方案(我假设人们因为标签而发布 jQuery 解决方案):

var combine = function(params) {
    var lst = [];
    for (var key in params) {
        if (params.hasOwnProperty(key)) {
            lst.push(encodeURIComponent(key)+"="+encodeURIComponent(params[key]));
        }
    }
    return "?"+lst.join("&");
}
于 2013-08-08T11:44:13.800 回答