繁体   English   中英

Javascript,Ajax和表单提交/响应

[英]Javascript, Ajax and form submission/response

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

我曾经使用ClickBank。 我的页面上有一个简单的按钮。 将表单数据发送到脚本,我处理了数据,然后在脚本末尾添加了重定向以跳转到“付款”链接。 太好了

但是现在我切换到“ Click2Sell” ...,他们可以直接访问他们的网站。

现在,我可以使用javascript读取表单数据,将其放入“ cp_”前缀,并创建一个超长(约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>

简而言之,当单击该按钮时,它将跳转到该函数,然后将表单数据提交到我的脚本中,然后返回到超链接以通过超链接提交第二个表单。

两个问题:首先,脚本返回的数据是在新选项卡中打开的,而不是在<div>中打开(我怀疑'cos提交选项会丢失发送窗口的轨迹),而且,我还需要从我的响应中获取响应脚本,然后可以将其附加到href链接。

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

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

对于第一个问题,因为您的表单上有target="no-show" ,所以它将打开一个新选项卡。

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

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

现在,您将如何操作取决于您使用哪种服务器端语言。

(我认为)我设法找到了解决方法,即使用第一种方法来重建href链接。 我无法遍历表单,因为有些值不需要转发。 首先,我得到了值,将其加载到变量中,然后使用在线发现的编码函数,然后将其重新分配给表单...

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;

我的打字“不出现”简直就是溜溜! las,上面给出的答案将不起作用,因为Click2sell按钮还包括对外部JS文件的两次调用-它们使您不知道它们的作用,但是与初始化按钮有关((它传递了“ 36288”到脚本做???)。 在我的服务器上使用“ Location:.. \\ n \\ n”时,它会重定向到他们的站点,而这些外部文件不会执行任何操作。 (好的,所以我没有提供完整的事实,但是我不想增加我认为与问题无关的数据的帖子大小)

**现在必须修改侦听脚本,以便与其先设置ID号然后再跳转到C2S,不如现在先等待C2S将数据发送回给我,然后设置数据库!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM