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(メールフォームと同じページ)の場合は、送信する場合に追加するだけです

<?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 に答える