2013-03-22 77 views
-1

表單操作是「」,因爲它全部使用相同的頁面。無論如何,表單可以在同一頁面上提交而無需刷新?通過php發送表單數據?

PHP:

<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    $to="[email protected]"; 
    $subject="Tech Muffins Contact"; 
    $message="Name:  ".$_REQUEST['name']."\n\nEmail:  ".$_REQUEST['email']."\n\nMessage: ".$_REQUEST['message']; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to, $subject, $message, $headers); 
} 
?> 

HTML:

<form id="contactform" action="" method="post" autocomplete="off"> 
    <input type="text" name="name" placeholder="name" autofocus required> 
    <input type="email" id="email" name="email" placeholder="email" required> 
    <textarea name="message" placeholder="message" required></textarea> 
    <input type="submit" value="submit"> 
</form> 
+4

沒有刷新,你就必須執行一些jQuery的/ Ajax請求插入/運行數據。 – 2013-03-22 00:59:40

回答

0

變 'your.php' 到你

<script type="text/javascript"> 
      $(document).ready(function(){ 
       $("#contactform").submit(function() {  
        $.post(
        'your.php', 
        $(this).serialize(), 
        function(data){ 
         //if you have a div to show result (with id=results) 
         $("#results").html(data) 
        //if sucess hide the form as $("#contactform").hide() 
        // or .fadeOut() 
        } 
       ); 
        return false; 
       }); 
      }); 
    </script> 
0

爲了做到這一點無需刷新,你通常會通過Ajax處理這個問題。有這個javascript函數。這裏是(使用jQuery)的例子:

var frm = $(document.myform); 
var data = JSON.stringify(frm.serializeArray());