Javascript html文章来自不同的目的地

Javascript html文章来自不同的目的地,javascript,python,html,django,http-post,Javascript,Python,Html,Django,Http Post,我正在开发一个django网络应用程序,我想在其中有一个注册过程。在这个注册过程中,我当然有一个表格,要求提供姓名、电子邮件和密码。我想做的是,通过邮寄将表格发送到两个不同的地方。其中一个当然是保存密码等的注册数据库,另一个是Emencia新闻通讯应用程序。如果有帮助,Emencia只需要电子邮件和姓名(可选) 那么,我怎样才能只用一个表单,两个地方发送它,并且只获取表单的部分数据而不是全部数据呢 谢谢大家! 你不能。无法向两个资源发送表单 您可以在注册脚本中向新闻稿脚本发送HTTP请求,例如使

我正在开发一个django网络应用程序,我想在其中有一个注册过程。在这个注册过程中,我当然有一个表格,要求提供姓名、电子邮件和密码。我想做的是,通过邮寄将表格发送到两个不同的地方。其中一个当然是保存密码等的注册数据库,另一个是Emencia新闻通讯应用程序。如果有帮助,Emencia只需要电子邮件和姓名(可选)

那么,我怎样才能只用一个表单,两个地方发送它,并且只获取表单的部分数据而不是全部数据呢


谢谢大家!

你不能。无法向两个资源发送表单


您可以在注册脚本中向新闻稿脚本发送HTTP请求,例如使用urllib2。

要做到这一点,您必须使用Javascript和AJAX


下面是一个使用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。成功后,提交原始表格。我不确定您是否需要将表单提交放在success中,或者只是将其放在ajax请求之后。我认为这并不重要。

这种诡计过去在大多数浏览器中都有效,但……现在似乎只在Firefox中有效。在两次提交之间添加延迟可以使其在IE中工作,但不能在Chrome中工作。事实上,我很惊讶它在firefox中仍然有效:)


虽然我同意更好的方法是在服务器端处理此问题,但我要纠正的是,将同一表单提交给不同的服务器端脚本是非常有可能的

有关脚本和一些演示,请参见以下页面:


它可以在IE、Firefox和Chrome中使用。

你能进一步说明一下吗。。。例如,成功:部分必须存在,在这种情况下,我只是希望它是透明的,在成功的情况下,只是重定向到注册完成网站。另外,我应该在表单的什么位置调用脚本?还是什么问题?谢谢
<html>
<body>
<form method='post' action='place1.php' onsubmit='this.action="place1.php";this.submit();this.action="place2.php";this.submit();return false;'>
<input type='text' name='thing' value='something' />
<input type='submit' value='send' />
</form>
</body>
</html>