表单提交对话框


Form submit dialog

我有一个基本表单,它要求提供某些信息,然后使用javascript验证表单,然后将其实际提交到一个单独的php文件中,通过电子邮件将表单提交给我。然而,在成功提交表单后,它会转到空白页,然后会显示一个感谢弹出窗口。我该如何设置它,使点击提交按钮不会进入新页面,而是在当前页面上显示弹出窗口?

我填写表格的代码是:

<form action="send_group.php" method="post" onsubmit='return formValidator()'>
//Asks to input information
    <input type="submit" value="Submit" />
</form>

我的PHP代码是:

<?php
$webmaster_email = "email@email.com"; //E-mail the message will be sent to
$info = $_REQUEST['info'] ;
$info1= $_REQUEST['info1'] ;
$info2= $_REQUEST['info2'] ;
$info3= $_REQUEST['info4'] ;
mail( "$webmaster_email", "Information Form Submission",
    "Info: $info
Info1: $info1
Info2: $info2
Info3: $info3" );
echo "<script type='text/javascript'>'n";
echo "alert('Thank you for your booking request. We will get back to you as soon as possible.');'n";
echo "</script>";
?>

您必须使用AJAX请求。所以你在提交按钮上绑定了一个onclick事件,然后你发送了一个AJAX请求,当AJAX请求成功时,你会显示你的响应(坏与否)。JQuery对于AJAX请求来说非常强大和简单,请看这里:http://api.jquery.com/jQuery.ajax/

您可以使用AJAX在后台提交数据,也可以使用更简单的选项将from和php放入同一个php文件中。

好吧,浏览器会准确地显示它从php脚本中接收到的内容。

在没有Ajax的情况下解决问题的一种方法可能是以下方法:要在处理请求后显示原始页面,请添加例如

header("location: your_form_page.php?req=1");

如果成功,例如

header("location: your_form_page.php?req=-1");

以防send_group.php发生错误。GET参数req可用于显示感谢框或错误消息。切换逻辑当然必须已经在您的_form_page.php中实现,例如

if ($_GET['req'] == '1') {
    echo "<script type='text/javascript'>'n";
    echo "alert('Thank you for ...');'n";
    echo "</script>";
} else if ($_GET['req'] == '-1') {
    echo "<script type='text/javascript'>'n";
    echo "alert('Error ...');'n";
    echo "</script>";
}

脚本成功完成后,您必须使用location标头重定向用户

header("location: formPage.php?success=1");

然后,您可以在原始表单页面上运行javascript。

使用xhrRequest(ajax)从验证页面检索信息,然后将结果显示给用户。