Javascript、Ajax和表单提交/响应

Javascript、Ajax和表单提交/响应,javascript,ajax,Javascript,Ajax,我希望有一个简单的解决方案,否则它可能的AJAX时间 我用的是ClickBank。我的页面上有一个简单的按钮。将表单数据发送到脚本后,我处理了数据,然后在脚本末尾添加了重定向以跳转到支付链接。很好,不容易 但现在我要切换到Click2Sell。。。他们有一个直接指向他们网站的href 现在我可以使用javascript读取表单数据,将其放入他们的cp_uuu前缀中,创建一个大约400个字符的超长查询字符串并将其发送到他们的服务器,然后在IPN阶段重新读取数据 ?country=UK&ar

我希望有一个简单的解决方案,否则它可能的AJAX时间

我用的是ClickBank。我的页面上有一个简单的按钮。将表单数据发送到脚本后,我处理了数据,然后在脚本末尾添加了重定向以跳转到支付链接。很好,不容易

但现在我要切换到Click2Sell。。。他们有一个直接指向他们网站的href

现在我可以使用javascript读取表单数据,将其放入他们的cp_uuu前缀中,创建一个大约400个字符的超长查询字符串并将其发送到他们的服务器,然后在IPN阶段重新读取数据

?country=UK&area=essex&desc=This is the data entered by the user 'whatever'
但这导致了一个小事实,即某些部分可能需要转义,例如空格和“或”或它们输入的任何其他符号

所以我设计了这个方法:

<javascript>
function send_data(){
document.user.submit();
return true;
}
</javascript>

<div name="noshowdiv"><object name="noshow"></object></div>
<form method="post" target="noshow" name="user">
<input type="text" name="country">
<input type="text" name="area">
<textarea name="desc"></textarea>
</form>
<a href="click2sell.asp"><img src="xxx" onclick="return send_data();"></a>
简而言之,单击按钮时,它会跳转到函数,将表单数据提交到我的脚本,然后返回到超链接,通过超链接提交第二个表单

两个问题:首先,我的脚本返回的数据是在新选项卡中打开的,而不是,我怀疑,因为提交选项无法跟踪发送窗口,而且我需要从我的脚本获得响应,然后我可以将其附加到href链接

例如,如果表单在我的服务器的第5行记录了用户的数据,脚本将返回id=5,然后我将使超链接click2sell.asp?cp_id=5


正如我所说,我怀疑这是Ajax和HttpRequest的工作。。。这对我来说是一个全新的领域。有什么建议吗?

对于第一个问题,它会打开一个新选项卡,因为您的表单上有target=no show

对于第二个问题,如果您想使用Ajax,我建议您使用jQuery,它将简化大量代码

但最好的选择可能是完全删除click2sell的直接链接,只需在表单中添加一个submit按钮。将表单发布到您的站点,该站点将存储所需的任何信息,分配ID,并使用其中一个参数中的ID构建click2sell URL,然后重定向到该URL


现在,您将如何实现这一点取决于您使用的服务器端语言。

我想我已经找到了解决方法,即使用第一个选项来重建href链接。我无法遍历表单,因为存在不需要转发的值。首先我得到这个值,将它加载到一个变量中,然后使用我在网上发现的一个encode函数,然后重新分配给表单

var cp_cc=document.getElementById('cc').value;
var cp_cs=document.getElementById('cs').value;  // plus 10 other values
var str='&cp_cc='+encodeURIComponent(cc)+'&cp_cs='+encodeURIComponent(cs)+ // etc
var send_str=document.getElementById('c2s_bn_lnk_36288').href;
document.getElementById('c2s_bn_lnk_36288').href=send_str+str;
不露面是我打字时的一个失误!唉,上面给出的答案不起作用,因为Click2sell按钮还包括两个对外部JS文件的调用——它们让你不知道它们在做什么,但与初始化按钮有关,它将36288传递给脚本来执行???。当使用Location:…\n\n时,我的服务器会重定向到他们的站点,而这些外部文件不会执行任何操作。好的,所以我没有给出全部事实,但我不想用我认为与问题无关的数据来增加文章的篇幅

**现在需要修改监听脚本,这样它就不用预先设置ID号然后跳转到C2S,而是等待C2S将数据发送回我,然后设置数据库