1

我遇到了一些障碍,我不想恢复使用表单,而是想看看我是否可以完成这项工作。我正在使用 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 的结构方式 - 如果没有,它也会添加 '&provider=... 等作为深度链接的一部分。

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

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

4

1 回答 1

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);
  });
});
于 2013-04-22T09:47:03.320 回答