我目前有一个关联数组 urlvalue ,其值如下:
{"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"}
我想将此数组转换为URL,以便我可以将变量发送到另一个页面。如何使用jquery完成它们,使它们看起来像这样:
?folder=subscriber&file=setstatus&alert=yes&id=12
由于
答案 0 :(得分:8)
您需要jQuery.param():
var params = {"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"};
var str = jQuery.param(params);
答案 1 :(得分:3)
使用
$。PARAM(VALUE)
功能可按。
示例:
var obj = {"folder":"subscriber", "file":"setstatus", "alert":"yes", "id":"12"},
toParam= $.param(obj);
alert(toParam);
输出:
夹=订户安培; FILE = setstatus&安培;警报= YES和ID = 12
Fillder:http://jsfiddle.net/BGjWT/
答案 2 :(得分: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);
答案 3 :(得分:1)
您可以使用http_build_query()
功能:
答案 4 :(得分: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);
答案 5 :(得分:0)
如果您不介意使用插件,there are some nice ones that do the job.
答案 6 :(得分: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("&");
}