php
  • javascript
  • 2012-07-31 145 views 1 likes 
    1

    我已经询问了某些信息,然后验证使用javascript实际上它提交给一个单独的PHP文件的形式提交email给我然而,在成功提交表单前形式的基本形式,它进入空白页面,然后出现一个谢谢弹出窗口。如何设置它,以便按下提交按钮不会进入新页面,而只是在当前页面上显示弹出窗口?表单提交对话框

    我对填写表单代码:

    <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 protected]"; //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>"; 
    ?> 
    

    回答

    2

    您必须使用AJAX请求。 所以,你绑定你的提交按钮上的onclick事件,然后你发送一个AJAX请求,当AJAX请求成功时,你显示你的响应(不好或不好)。 jQuery是真的很强大,易于AJAX请求,请看这里:http://api.jquery.com/jQuery.ajax/

    +0

    这正是我所期待的。谢谢! – 2012-07-31 16:25:49

    0

    你必须将用户重定向脚本成功完成后,使用location

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

    然后你原来的表单页面上,你可以运行的JavaScript。

    +0

    或者你可以使用AJAX像@JBENOIT建议。同一枚硬币的不同侧面。 – Matt 2012-07-31 15:48:52

    +0

    有没有办法让用户保持在同一页面上?起初我尝试添加标题(“location:home.html”);最后,因为这是表单的位置,但是在成功提交之后,它将转到home.html,但不显示“谢谢”对话框。 – 2012-07-31 15:50:11

    +0

    @D-Boy使用AJAX将表单提交给* send *脚本,然后当您的* send *脚本返回成功信息时,使用'success'回调显示警报。 – Matt 2012-07-31 15:57:49

    0

    使用xhrRequest(阿贾克斯)用于检索验证网页的信息,然后显示结果给您的用户。

    2

    您可以使用AJAX在后台提交数据,或者,在更容易的选择把从和PHP在同一个PHP文件。

    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>"; 
    } 
    
    相关问题