如何通过弹出窗口确认表单提交,而不是重定向?

时间:2012-11-02 14:47:53

标签: php jquery forms popup contact

我一直在寻找解决我正在尝试重新使用的PHP脚本的特定问题的解决方案。

<?php $name = $_POST['name'];
$company = $_POST['company'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent = "$name \nMessage: $message";
$recipient = "me@me.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die ("Error!");
echo "Thank You!" . " -" . " <a href = '../index.html' style = 'text-decoration:none;color:#ff0099;'>Return Home</a>";
?>

我没有重新指向另一个页面,而是希望通过模态弹出窗口了解一个简单的方法来启动确认。

我正在将脚本作为外部文件运行,所以我猜测已经有一半的答案了,但是在调用jQuery插件来完成剩下的工作时,我可以使用一两个指针!

4 个答案:

答案 0 :(得分:1)

如果您不想重新加载或重定向到新页面,则需要通过AJAX发布。

在AJAX调用的“success”方法中,您将触发对话框。

答案 1 :(得分:1)

  • 将所有html输入包装在表单元素中。
  • 点击发送邮件链接,附加一个ajax事件,向php文件发送一个ajax POST请求,其中包含发送邮件的业务逻辑( 显示在你的问题中)。
  • 然后,在事件成功后,您可以向用户显示成功消息。
  • 以最小的方式实现这一点 代码,我建议你使用JQuery的组合(对于ajax form post)和Twitter Bootstrap(用于CSS和模态窗口)
  • 下面代码的某些实现可能会对您有所帮助

$('#divId')。click(function(){

//start the ajax
$.ajax({
    //this is the php file that processes the data and send mail
    url: "send_mail.php",

    //POST method is used
    type: "POST",
    // here we are serializing all form values ( its is not php serialize)
    data: $("#Form").serialize(),
    //Do not cache the page
    cache: false,

    //success
    success: function (html) {             
        if (html=='1') {    
            $('#divModal').modal('show') ; 

        }              
    }      
});

//cancel the submit button default behaviours
return false;

});

答案 2 :(得分:0)

或者您可以在onsubmit属性中使用它

onSubmit="javascript: return confirm('Are you sure you want to submit this?');"

将要求确认/取消确认

--- jQuery Ajax -----

function doSubmit(){
  var postData = jQuery('#your-form-id').serialize();    

  jQuery.ajax({
    url: 'form-action.php',
    data: postData
  }).done(function( html ) {
    alert(html);
  });
}

- 并在您的表单标签---

<form id="your-form-id" onsubmit="javascript: doSubmit();" ...

答案 3 :(得分:0)

正如Diodeus建议你应该使用HTTP请求来调用你的php文件。使用您从请求中返回的输出,您可以创建弹出窗口或任何您想要通知用户的内容。 Here您可以找到有关如何执行此操作的基本信息。