html帖子形成不同的目的地

时间:2011-06-09 20:25:27

标签: javascript python html django http-post

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

那么我怎么能只用一个表格,两个地方发送它,并且只取一些表格的数据而不是全部?

谢谢!

5 个答案:

答案 0 :(得分:1)

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

有关脚本和一些演示,请参阅以下页面: How to create a multi-submit form

适用于IE,Firefox和Chrome。

答案 1 :(得分:0)

你做不到。无法将表单发送到两个资源。

您可以做的是将您的注册脚本中的HTTP请求发送到新闻稿脚本,例如使用urllib2。

答案 2 :(得分:0)

要做到这一点,你必须使用Javascript& AJAX

http://www.tizag.com/ajaxTutorial/

答案 3 :(得分: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请求之后。我认为这不重要。

答案 4 :(得分:0)

这种技巧过去常用​​于大多数浏览器,但......它似乎只能在Firefox中使用。在两个提交之间添加延迟使其在IE中工作,但不能在Chrome中工作。我真的很惊讶它仍然适用于Firefox:)

<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>