URL中的jQuery .load URL

时间:2013-04-22 09:41:52

标签: jquery

我遇到了一些障碍,而不是回复使用表格,我想看看我能不能做到这一点。我正在使用onclick事件向数据库添加值,其中一部分是url。这是我的代码;

<a onclick="$(this).load(encodeURI('a_addprice.cfm?productid=#productid#&price=#price#&stockstatus=#stockstatus#&deeplink=#deeplink#&provider=#provider#&supplier_name=#supplier_name#&itemref=#itemref#&storeid=#storeid#'));">Add</a>

(主题标签与我的后端语言相关,Coldfusion - 对于那些不知道的人来说)

在纯HTML中,这就是它的外观;

<a onclick="$(this).load(encodeURI('a_addprice.cfm?productid=1&price=10.99&stockstatus=In Stock&deeplink=http://www.supplier.com/?product=1&something=2&provider=providername&supplier_name=supplier_name&itemref=ABC1&storeid=123'));">Add</a>

我遇到的问题是这部分(深层链接);

http://www.supplier.com/?product=1&something=2

执行操作时,它会忽略URL中的所有内容?product = 1。当然,这是有道理的,因为URL的结构方式 - 如果没有,它也会添加'&amp; provider = ...等作为深层链接的一部分。

我想知道的是,是否有一种方法我仍然可以使用这种方法,或许可以隔离深层链接方面,使其完全包含在内。

包含的页面大约有100行,所以我基本上试图避免使用100个表单,以及每个表单所需的所有额外隐藏变量。

1 个答案:

答案 0 :(得分:1)

我觉得你已将encodeUri置于错误的部分

$(this).load(
'a_addprice.cfm?productid=#productid#&price=#price#&stockstatus=#stockstatus#&deeplink='+
 encodeURI('#deeplink')+
'#&provider=#provider#&supplier_name=#supplier_name#&itemref=#itemref#&storeid=#storeid#'));

此外,我强烈建议您将其更改为#URLEncodedFormat(deeplink)#

并有一个像

这样的链接
<a  class="deeplink"
href="a_addprice.cfmproductid=#productid#&price=#price#&stockstatus=#stockstatus#&deeplink= #URLEncodedFormat(deeplink)#&provider=#provider#&supplier_name=#supplier_name#&itemref=#itemref#&storeid=#storeid#">...</a>

并使用

$(function() {
  $(".deeplink").on("click",function(e) {
    e.preventDefault();
    $("someResultContainer").load(this.href);
  });
});