我有一個簡單的聯繫表單,它有一些驗證。我已經搜索了Google幾個小時,並且發現了大量關於如何從各種事情創建聯繫人的東西,但我只是在尋找一些非常簡單的東西。我希望使用我的表單,因爲我希望添加一些ajax代碼來使頁面不會像現在這樣重新加載,並且在提交表單時顯示一個小動畫gif替換submit按鈕,然後顯示成功的訊息,我有。如何在聯繫表格中使用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中創建您的函數,然後單擊此按鈕創建dbove。 從函數中收集數據到send_remote_call函數中記錄的對象中。把參數傳遞給這個函數,你就完成了。您可以在自己的回調中收到回覆,並使用上述功能管理加載或卸載圖像 – Aditya