1

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

我填写表格的代码是:

<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>";
?>
4

5 回答 5

2

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

于 2012-07-31T15:47:36.760 回答
2

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

于 2012-07-31T15:48:27.787 回答
1

好吧,浏览器准确地显示了它从您的 php-script 接收到的内容。

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

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

在成功的情况下,例如

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

如果 send_group.php 发生错误。GET 参数 req 可用于显示感谢框或错误消息。切换逻辑当然必须已经在 your_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>";
}
于 2012-07-31T16:07:44.040 回答
0

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

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

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

于 2012-07-31T15:47:25.760 回答
0

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

于 2012-07-31T15:47:32.750 回答