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

问题描述

|| 我正在使用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(){}
 );