2013-04-04 30 views
0

我有一个简单的html联系表单,以及用于发送电子邮件的php脚本。它运行良好,但我希望结果(电子邮件已发送...)显示在同一页面中,而不更改页面。我怎样才能做到这一点?如何使用AJAX显示联系人表单的PHP结果?

HTML:

<form name="contact" action="includes/send.php" id="contact_form"> 

    <input type="text" placeholder="Name" name="name" /> <br /> 

    <input type="email" placeholder="Email Address" name="email" /> <br /> 

    <textarea name="message" placeholder="Message" rows="8"></textarea> <br /> 

    <input type="submit" name="submit" id="submit_btn" value="Send" /> 

</form> 

PHP:

<?php 

$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

$to = '[email protected]'; 
$subject = 'Message from AMARSYLA.COM'; 
$message = 'FROM: '.$name.' Email: '.$email.'Message: '.$message; 
$headers = 'From: [email protected]'; 

if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // this line checks that we have a valid email address 
    mail($to, $subject, $message) or die('Error sending Mail'); //This method sends the mail. 
    echo "Your email was sent!"; // success message 
} 

?> 
+0

您似乎在问一个Ajax 101教程。这不是那种适合Stackoverflow的问题。改为使用搜索引擎(可以获得诸如[此mdn资源](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest))的结果。 – Quentin 2013-04-04 13:37:58

+0

如果你只想这样做,你不必使用Ajax,除非你不想在提交表单时刷新页面。 – egig 2013-04-04 13:44:19

回答

0
jQuery.post('email.php', score, function(result) { 
    jQuery('#textBlock').html(result); 
}); 

类似的东西应该工作(结果是在这种情况下,你的PHP回声)

一个优先停留方法把你的php结果编码为json,所以你在Javascript中有更多的控制权。

jQuery.post('email.php', score, function(result) { 
    if (result.result == true) { 
     jQuery('#textBlock').html(result.text); 
    } 
}); 

而在email.php:

$result['result'] = true; 
$result['text'] = 'Message has been sent'; 

header('Content-Type: application/json'); 
echo json_encode($result); 
-2

这里看看,如果这个工程:

<form name="contact" action="**submit to same page**" id="contact_form"> 



<input type="submit" name="submit" id="submit_btn" value="Send" /> 

</form> 

那么对于PHP(在同一页作为电子邮件形式)只需添加如果提交

<?php 
if(isset($_POST['submit'])){ 

run your email script, add javascript, etc. 
echo "Your email was sent!"; // success message 
} 


    } 
    ?> 
相关问题