将存储在Javascript Object中的参数传递给jQuery .load页面

时间:2011-05-27 17:52:33

标签: javascript jquery

我正在使用Ben Alman的jQuery BBQ来获取当前页面的Querystring和Hash值,并使用以下代码将它们存储在Javascript对象中:

var params = $.deparam.querystring();
var paramsHash = $.deparam.fragment();

这些都设置正确;如果我console.log他们我得到返回的值:

distance         "0.1"
floorFrom        "0"
floorTo          "1000"
floorUnit        "1"
ipp              "10"
locationName     "London"
location_val     "LK||001"
tab              "3"

现在我要做的是使用jQuery .load调用将这些值传递给页面。

目前我正在使用下面的代码

$('#result').load('mypage.php', { querystringData : params, hashData : paramsHash }, function()
{
...
}

显然,这是将数据传递给mypage.php:querystringData[locationName]=London

我需要将其作为locationName=London等传递,但不确定实现此目的的最佳方法。

更新,添加说明,以下答案的评论副本

我想要摆脱的是在.load调用中使用querystringData和hashData。如果我要全力以赴,它看起来像是:

$('#result').load('mypage.php', { distance : '0.1', floorFrom: '0', floorTo : '1000', floorUnit : '1', ipp : '10', locationName : 'London', location_val : 'LK||001', tab : '3' }

我不知道如何从对象中获取值并将其显示在.load调用中。另一个问题是我将添加和删除查询字符串值,所以我不认为这是我可以硬编码的。

2 个答案:

答案 0 :(得分:3)

这是未经测试的,但我认为它应该有效,因为我对BBQ的知识有限:

var params = $.deparam.querystring();
var paramsHash = $.deparam.fragment();

var data = $.extend({}, params, paramsHash);

$('#result').load('mypage.php', data, function()
{
...
}

我相信paramsparamsHash已经采用了正确的格式,只需将它们合并即可。这可能不适用于哈希,因为我不熟悉烧烤。

http://api.jquery.com/jQuery.extend/

答案 1 :(得分:0)

你应该可以使用jquery的.serializeArray()来获得你需要的东西。

$('#result').load('mypage.php', 
                   { querystringData : params, 
                     hashData : paramsHash.serializeArray() }, 
                   function(){}
 );