【发布时间】:2011-12-24 23:17:31
【问题描述】:
我一直在阅读大量的问答,这些 stackoverflow 帖子似乎与我正在尝试做的事情最相关: 1)How we can save data on two servers using one sumit form? 2)How to call server side action method just before submitting form to 3rd party url?
基本上,我正在使用 Aweber 自动回复服务,我遇到了一些技术问题,即使我在我的分析软件上看到人们正在用电子邮件填写表格并点击提交按钮。
所以,我希望我可以先在 TXT 文件中捕获服务器上的表单数据,然后再将表单数据提交给 Aweber。
(根据我的研究,我需要 ajax、jquery 来实现)
根据不同的帖子和教程,我想出了以下内容,但不幸的是仍然无法正常工作......
如果可能,请告诉我如何修复此代码。非常感谢!!!
使用 jquery:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//if submit button is clicked
$('#submit').submit(function () {
//Get the data from all the fields
var email = $('input[name=email]');
var custom_sub1 = $('input[name=custom sub1]');
var custom_sub2 = $('input[name=custom sub2]');
var custom_sub3 = $('input[name=custom sub3]');
//organize the data properly
var data = 'email=' + email.val() + '&custom_sub1=' + custom_sub1.val() + '&custom_sub2='
+ custom_sub2.val() + '&custom_sub3=' + custom_sub3.val();
//start the ajax
$.ajax({
//this is the php file that processes the data and send mail
url: "http://mydomain.com/form_plus_email.php",
//method
type: 'POST',
//pass the data
data: data,
//Do not cache the page
cache: false,
success: function() {
}
});
//cancel the submit button default behaviours
return false;
});
});
</script>
</head>
以上,不知道是不是“return false;”导致问题
有形体:
<form method="post" action="http://www.aweber.com/scripts/addlead.pl">
<input type="text" name="email" value="Enter email" id="email">
<input value="xxxxxxxxxxxx" name="meta_web_form_id" type="hidden">
<input value="" name="meta_split_id" type="hidden">
<input value="xxxxxxxxxxxxx" name="listname" type="hidden">
<input value="http://domain.com/thankyoupage" name="redirect" type="hidden">
<input value="http://domain.com/thankyoupage" name="meta_redirect_onlist" type="hidden">
<input value="xxxxxxxxxxxxx" name="meta_adtracking" type="hidden">
<input value="1" name="meta_message" type="hidden">
<input value="email" name="meta_required" type="hidden">
<input value="1" name="meta_forward_vars" type="hidden">
<input value="" name="meta_tooltip" type="hidden">
<script type="text/javascript">
{
document.write('<input type="hidden" name="custom sub1" value="'+sub1+'">')
document.write('<input type="hidden" name="custom sub2" value="'+sub2+'">')
document.write('<input type="hidden" name="custom sub3" value="'+sub3+'">')
}
</script>
<input type="image" value="Submit Button" name="submit" src="image.png" id="submit" class="button1">
</form>
</body>
对于 Aweber,重要的是所有列出的隐藏和未隐藏字段都传递给 action="http://www.aweber.com/scripts/addlead.pl"。
但是,对于我自己来说,因为我只对 4 个字段感兴趣,所以我已经在 head 标签的 jquery 部分中指定了我需要的所有内容。
我不知道为什么代码不起作用...所以,我如何确保在将表单数据提交给第 3 方之前,它会先使用 ajax 保存到我的服务器网址?现在……
<form method="post" action="http://www.aweber.com/scripts/addlead.pl">
正在执行并正常工作......但据我所知,ajax 根本没有保存数据
非常感谢!
【问题讨论】:
-
不能发两次吗?您有一个执行一个帖子的`$.ajax` 调用,为什么不在同一个点击事件中在另一个执行另一个帖子的下方添加第二个`$.ajax`?只要确保你的成功函数在两者都完成之前不会重定向。
-
@Nanne:感谢您的提示,我确实尝试使用设置为“#”的表单操作进行 2 次 ajax 调用。但是,即使这样,也没有执行 ajax 调用...就像当前代码一样,action="aweber.com/scripts/addlead.pl" 会执行,但由于某种原因,ajax 帖子似乎不起作用...
标签: php javascript jquery ajax forms