0

我有一个简单的 html 联系表和发送电子邮件的 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 = 'amar123syla@gmail.com';
$subject = 'Message from AMARSYLA.COM';
$message = 'FROM: '.$name.' Email: '.$email.'Message: '.$message;
$headers = 'From: amar123syla@gmail.com';

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
}

?>
4

2 回答 2

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);
于 2013-04-04T13:38:02.440 回答
-2

在这里看看这是否有效:

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



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

</form>

然后对于 php(与电子邮件表单在同一页面上)只需添加 if submit

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

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


  }
    ?>
于 2013-04-04T13:38:28.127 回答