私は単純なコンタクトフォームを持っています。私は何時間もGoogleを検索していますが、それから連絡先を作成する方法についてはさまざまなものがありますが、本当にシンプルなものを探しています。私は私のフォームを使用したいと思うように、私はいくつかのAjaxコードを追加して、ページを現在のようにリロードしないようにし、フォームが提出している間にサブミットボタンを置き換える小さなアニメーションGIFを表示したい私が持っている成功メッセージ。コンタクトフォームでajaxを使用する方法
<?php
// define variables and set to empty values
$error = ""; $successMessage = "";
$fname = $email = $message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$error .= "First name is required.<br>";
} else {
$fname = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$fname)) {
$error .= "Only letters and white space allowed.<br>";
}
}
if (empty($_POST["email"])) {
$error .= "Email is required.<br>";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error .= "Invalid email format.<br>";
}
}
if (empty($_POST["message"])) {
$error .= "Message is required.<br>";
} else {
$message = test_input($_POST["message"]);
}
if ($error != "") {
$error = '<div class="formerror" role="alert"><p><strong>There were error(s) in your form:</strong><br></p>' . $error . '</div>';
} else {
$successMessage = '<div class="alert alert-success" role="alert">Your message was sent, we\'ll get back to you ASAP!</div>';
// $emailTo = "[email protected]";
//$subject = $_POST['subject'];
//$content = $_POST['content'];
// $headers = "From: ".$_POST['email'];
// if (mail($emailTo, $subject, $content, $headers)) {
// $successMessage = '<div class="alert alert-success" role="alert">Your message was sent, we\'ll get back to you ASAP!</div>';
// } else {
// $error = '<div class="alert alert-danger" role="alert"><p><strong>Your message couldn\'t be sent - please try again later</div>';
}
//}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
フォームコード:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<div class="cform">
<input type="text" class="contactfield cformbottom" id="name" placeholder="Your full name" name="name" value="<?php echo $fname;?>">
<input type="email" class="contactfield cformbottom" id="email" name="email" placeholder="Your email" value="<?php echo $email;?>">
<textarea class="contactfield" id="message" name="message" rows="3" placeholder="Your Message" value="<?php echo $message;?>"></textarea>
</div>
<input type="submit" class="newsbut" value="Submit">
</form><br>
<div id="error"><? echo $error.$successMessage; ?></div>
jQueryの検証:
<script type="text/javascript">
$("form").submit(function(e) {
var error = "";
if ($("#name").val() == "") {
error += "Your name is required.<br>"
}
if ($("#email").val() == "") {
error += "Your email is required.<br>"
}
if ($("#message").val() == "") {
error += "Your message is required.<br>"
}
if (error != "") {
$("#error").html('<div class="formerror" role="alert"><p><strong>There were error(s) in your form:</strong></p>' + error + '</div>');
return false;
} else {
return true;
}
})
</script>
をプロビジョニング引数を持っている必要がありますあなたの迅速な対応をありがとうございました。このコードを自分のコードとの関連でどこに置くのですか? – Jonathan
フォームタグを削除できます。 送信ボタンをtype = "button"に変更して変更してください。 また、このボタンをクリックするとJavaScriptが呼び出され、create dboveという関数が作成されます。 関数からsend_remote_call関数に記述されているようにオブジェクトにデータを収集します。この関数にパラメータを渡すと完了です。独自のコールバックで応答を返すことができ、上記の関数を使用してイメージの読み込みやロードを管理することもできます – Aditya