我有一个基本表单,要求提供某些信息,然后使用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>";
?>
答案 0 :(得分:2)
您必须使用AJAX请求。 因此,您在提交按钮上绑定一个onclick事件,然后发送一个AJAX请求,当AJAX请求超过时,您显示您的响应(错误与否)。 对于AJAX请求,JQuery非常强大且易于使用,请查看此处:http://api.jquery.com/jQuery.ajax/
答案 1 :(得分:2)
你可以使用AJAX在后台提交数据,或者更简单的选择将from和php放在同一个php文件中。
答案 2 :(得分:1)
嗯,浏览器会准确显示从php脚本收到的内容。
在没有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>";
}
答案 3 :(得分:0)
在脚本成功完成后,您必须使用location
标题
header("location: formPage.php?success=1");
然后在原始表单页面上运行javascript。
答案 4 :(得分:0)
使用xhrRequest(ajax)从验证页面检索信息,然后向用户显示结果。