이 question을 기반으로 연락처 양식 스크립트를 다시 작성해야했습니다. 목표는 send
이라는 레이블이 지정된 보내기 단추를 사용하는 것입니다. clickick 후 PHP 스크립트가 완료 될 때까지 sending
가 표시되어야합니다. 완료되면 sent
이 표시되어야합니다. 내 간단한 형태 그게 전부연락 양식에 오류가 있습니다. jquery ajax를 통해 제출하십시오.
: 여기
<form id="contactForm" action="mail.php" method="post">
<input type="text" id="name" name="name" placeholder="Name" required><br />
<input type="text" id="email" name="email" placeholder="Mail" required><br />
<textarea name="message" id="message" placeholder="Nachricht" required></textarea><br />
<button name="submit" type="submit" id="submit">send</button>
</form>
는 라벨 변경하고 아약스 제출에 대한 JQuery와 스크립트입니다.
<script>
$(init);
function init() {
$('#contactForm').submit(submitForm);
}
function submitForm() {
var contactForm = $(this);
if (!$('#name').val() || !$('#email').val() || !$('#message').val()) {
$('#submit').html('error');
} else {
$('#submit').html('sending');
$.ajax({
url: contactForm.attr('action') + "?ajax=true",
type: contactForm.attr('method'),
data: contactForm.serialize(),
success: submitFinished
});
}
return false;
}
function submitFinished(response) {
response = $.trim(response);
if (response == "success") {
$('#submit').HTML = ('sent');
} else {
$('#submit').html('error');
}
}
</script>
mail.php :
<?php
define("RECIPIENT_NAME", "John Doe");
define("RECIPIENT_EMAIL", "[email protected]");
define("EMAIL_SUBJECT", "Subject");
$success = false;
$name = isset($_POST['name']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name']) : "";
$email = isset($_POST['email']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email']) : "";
$message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : "";
if ($name && $email && $message) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "Von: " . $name . " <" . $email . ">";
$success = mail($recipient, EMAIL_SUBJECT, $message, $headers);
}
if (isset($_GET["ajax"])) {
echo $success ? "success" : "error";
} else {
//add html for javascript off user
}
?>
그것의 올바른 제출하고 난 메일을 얻을하지만 난 sending
에 붙어 sent
.Its에 레이블을 변경 나던. 내 코드에 어떤 생각이나 제안이 잘못 되었습니까? 당신이 다른 곳에이 같은
안부 dennym
Firebug 또는 Dev Tools 등에서 요청을 볼 때 출력은 무엇입니까? –
HTML을 html로 만들어보십시오 – user1048676
또한 응답을 시도하여 응답이 성공 – user1048676