我遇到了一些障碍,而不是回复使用表格,我想看看我能不能做到这一点。我正在使用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个表单,以及每个表单所需的所有额外隐藏变量。
答案 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);
});
});