Javascript,Ajax和表单提交/响应

时间:2014-07-27 11:27:25

标签: javascript ajax

我希望有一个简单的解决方案,或者它可能的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>

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

两个问题:首先,我的脚本返回的数据是在新选项卡中打开而不是&lt; div&gt;,(我怀疑'因为提交选项失去了发送窗口的跟踪)而且,我需要得到我的脚本的响应,然后我可以附加到href链接。

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

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

2 个答案:

答案 0 :(得分:0)

对于第一个问题,它会打开一个新标签,因为您的表单上有target="no-show"

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

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

现在你如何做到这一点取决于你使用的服务器端语言。

答案 1 :(得分:0)

(我认为)我已经设法找到一个解决方案,它使用第一个选项来重建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;

“没出现”是我打字的一个漏洞!唉,上面给出的答案不会起作用,因为Click2sell按钮还包括对外部JS文件的两次调用 - 他们不知道他们做了什么,但它与初始化按钮有关,(它通过“36288”到脚本做???)。虽然在我的服务器上使用“Location:.. \ n \ n”将重定向到他们的站点,但无论这些外部文件做什么,它都不会起作用。 (好的,所以我没有提供完整的事实,但我不想用我认为与问题无关的数据来增加帖子大小)

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