问题描述
||
我正在使用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:4
我需要将其作为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调用中显示它们。另一个问题是,我将添加和删除查询字符串值,因此我认为我不能对此进行硬编码。
解决方法
这未经测试,但我认为应该可以使用,因为我对烧烤的了解有限:
var params = $.deparam.querystring();
var paramsHash = $.deparam.fragment();
var data = $.extend({},params,paramsHash);
$(\'#result\').load(\'mypage.php\',data,function()
{
...
}
我相信params
和paramsHash
已经采用正确的格式,只需要合并即可。对于散列可能不是这样,因为我不熟悉BBQ。
http://api.jquery.com/jQuery.extend/
, 您应该能够使用jquery的.serializeArray()
获得所需的内容。
$(\'#result\').load(\'mypage.php\',{ querystringData : params,hashData : paramsHash.serializeArray() },function(){}
);