0
私は自分のニーズに合わせて変更した通常のphpコンタクトフォームのサンプルを持っていました。私はその後、私のPHPメールスクリプトに投稿するためにajaxを使いたいと思っていました。何らかの理由で、私はまだ、まだ、このような私のURL内のポストの値を参照してください。アヤックスを正しく使用していないコンタクトフォーム
http://www.example.com?name=bruno&email=bruno%40gmail.com&subject=ajax+test+ff&message=test
私はまた、送信が成功したかどうかについての私のPHPからの適切な応答を得ることで失敗しています。成功すればメッセージを表示したい。
ただし、メールが送信されます。
これは私のコードです:
HTML
<form>
<input type="text" class="form-control" id="name" name="name" placeholder="Name">
<input type="email" id="email" name="email" class="form-control" placeholder="Email">
<input type="text" class="form-control" id="subject" name="subject" placeholder="Subject">
<textarea class="form-control" id="message" name="message" placeholder="Message" rows="4"></textarea>
<button id="submit" class="form-control text-uppercase">Send</button>
</form>
jQueryの
$(document).ready(function() {
$("#submit").click(function(){
var data = {
name:$("#name").val(),
email:$("#email").val(),
subject:$("#subject").val(),
message:$("#message").val(),
}
$.ajax({
type: "POST",
url: "sendmail.php",
data: data,
dataType: 'json',
cache: false,
})
.success(function(response) {
if(!response.errors && response.result=="success") {
alert("success")
} else
if(!response.errors && response.result=="oops") {
alert("oops somethign went wrong");
}
});
});
});
PHP
<?php
$inputvalues = $_POST;
$errors = false;
$result = false;
$email_to = "[email protected]";
$email_from = "[email protected]";
$name = $inputvalues["name"];
$email = $inputvalues["email"];
$message = $inputvalues["message"];
$email_subject = $inputvalues["subject"];
$headers = "From: " . $email_from . "\n";
$headers .= "Reply-To: " . $email . "\n";
$message = "Name: ". $name . "\r\nMessage: " . $message;
ini_set("sendmail_from", $email_from);
$sent = mail($email_to, $email_subject, $message, $headers, "-f" .$email);
if ($sent) {
$returnResult = "success";
}
else {
$returnResult = "oops";
}
echo json_encode(['result' => $returnResult, 'errors' => $errors]);
?>
ああ!それはアヤックスの問題を整理しました。クリスおかげさまで! –