HTML POST 表单不同目标地址
我正在开发一个django网页应用,想要实现一个注册流程。在这个注册流程中,我当然需要一个表单,要求填写姓名、邮箱和密码。我希望能够将这个表单通过POST方式发送到两个不同的地方。一个地方是注册数据库,用来保存密码等信息,另一个地方是Emencia的新闻通讯应用。顺便提一下,Emencia只需要邮箱和姓名(姓名是可选的)。
那么,我该如何用一个表单,发送到两个地方,并且只提取表单中的部分数据,而不是全部呢?
谢谢!
5 个回答
0
这里有一个用jQuery实现的解决方案...
$("input:submit").click(function(e) {
e.preventDefault();
// javascript validation
// run this if validation succeeds
$.ajax({
url: "url to emencia newsletter",
type: 'post',
data: "Email=" + $("#emailField").val() + "&Name=" + $("#nameField").val(),
success: function(result) {
// do stuff
$('form').submit();
}
});
// could also go here if you don't want the success callback -- $('form').submit();
});
事情是这样的,当你点击提交按钮时,e.preventDefault会告诉浏览器不要提交表单。接着,你会发送一个ajax请求去提交给emencia。如果请求成功了,原来的表单就会被提交。我不太确定你是需要把表单提交放在成功的回调里,还是直接放在ajax请求之后,我觉得其实都没什么太大关系。
0
你不能这样做。没有办法把一个表单同时发送到两个地方。
不过,你可以在你的注册脚本中发送一个HTTP请求给新闻通讯的脚本,比如可以用urllib2这个工具。
1
虽然我同意更好的方法是在服务器端处理这个问题,但我想更正一下,实际上是完全可能将同一个表单提交给不同的服务器端脚本。
你可以查看下面的页面,里面有相关的脚本和一些示例:如何创建一个多提交表单
这个方法在IE、Firefox和Chrome浏览器中都能正常工作。