php
  • javascript
  • 2012-07-31 203 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>"; 
    } 
    
    相關問題