Jquery验证无效的PHP联系人表单
问题是,无论我尝试了什么都没用。尝试了我自己的脚本,尝试了一切,然后在谷歌上找到了一些,并尝试了它们,但不知道遗漏了什么,但它不起作用。 到目前为止最接近的一次,我收到了空邮件。这是最新版本。谁能告诉我少了什么 HTML JS验证Jquery验证无效的PHP联系人表单,php,jquery,contact-form,Php,Jquery,Contact Form,问题是,无论我尝试了什么都没用。尝试了我自己的脚本,尝试了一切,然后在谷歌上找到了一些,并尝试了它们,但不知道遗漏了什么,但它不起作用。 到目前为止最接近的一次,我收到了空邮件。这是最新版本。谁能告诉我少了什么 HTML JS验证 <script type="text/javascript"> $(document).ready(function(){ $('#send_message').on('submit',function(e){
<script type="text/javascript">
$(document).ready(function(){
$('#send_message').on('submit',function(e){
e.preventDefault();
var error = false;
var name = $('#contactName').val();
var email = $('#contactEmail').val();
var subject = $('#contactSubject').val();
var message = $('#contactMessage').val();
if(name.length == 0){
var error = true;
$('#name_error').fadeIn(500);
} else {
$('#name_error').fadeOut(500);
}
if(email.length == 0 || email.indexOf('@') == '-1'){
error = true;
$('#email_error').fadeIn(500);
} else {
$('#email_error').fadeOut(500);
}
if(message.length == 0){
error = true;
$('#message_error').fadeIn(500);
} else {
$('#message_error').fadeOut(500);
} if(error == false){
$('#cf_submit_p').attr({'disabled' : 'true', 'value' : 'Gönderiliyor...' });
$.post("send_email.php", $("#contact_form").serialize(),function(result){
if(result == 'sent'){
$('#cf_submit_p').remove();
$('#mail_success').fadeIn(500);
} else {
$('#mail_fail').fadeIn(500);
$('#cf_submit_p').removeAttr('disabled').attr('value', 'Gönder');
}
});
}
return false;
});
});
</script>
和PHP
<?php
//Değiştir. Site admini eposta adresi.
$akaEmail = 'kreaft@outlook.com';
if($_POST) {
$name = trim(stripslashes($_POST['contactName']));
$email = trim(stripslashes($_POST['contactEmail']));
$subject = trim(stripslashes($_POST['contactSubject']));
$contact_message = trim(stripslashes($_POST['contactMessage']));
// İsim doğrulama
if (strlen($name) < 2) {
$error['name'] = "Lütfen adınızı girin.";
}
// Email doğrulama
if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
$error['email'] = "Lütfen geçerli bir eposta adresi girin.";
}
// Mesaj doğrulama
if (strlen($contact_message) < 15) {
$error['message'] = "Lütfen mesajınızı girin. (Min. 15 karakter)";
}
// Konu
if ($subject == '') { $subject = "Site İletişim Formu"; }
// Mesajı oluşturuyoruz
$message .= "Gönd.: " . $name . "<br />";
$message .= "Eposta: " . $email . "<br />";
$message .= "Mesaj: <br />";
$message .= $contact_message;
$message .= "<br /> ----- <br /> Bu eposta site iletişim formu üzerinden gönderilmiştir. <br />";
// Başlıkları oluşturuyoruz
$from = $name . " <" . $email . ">";
// Başlıklar
$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
if (!$error) {
ini_set("sendmail_from", $akaEmail); // windows server için
$mail = mail($akaEmail, $subject, $message, $headers);
if ($mail) { echo "OK"; }
else { echo "Bir hata oluştu. Lütfen tekrar deneyin."; }
} # hiç bir doğrulama hatası çıkmazsa bitir, çıkarsa hataları listeliyoruz.
else {
$response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
$response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
$response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;
echo $response;
} # bir doğrulama hatası olmuşsa burada bitir.
}
?>
注意:未定义变量:第61行/Users/kobigo/Sites/yedikitamuhendislik.com/sendEmail.php中的message
看看第61行:
$message .= "Gönd.: " . $name . "<br />";
其余类似的行可以附加到它
您还附加到JavaScript代码中的错误事件:
$('#send_message').on('submit',function(e){
发送消息是一个按钮,而不是表单。它没有提交事件。请改为将以下内容附加到表单:
$('#contact_form').on('submit',function(e){
您试图在第61行追加$message变量,而不首先初始化它。通过移除附加符号来固定第61行
注意:未定义变量:第61行/Users/kobigo/Sites/yedikitamuhendislik.com/sendmail.php中的message’这是我现在注意到的最后一个错误@Jayblanchard你有没有研究过为什么变量是未定义的?把你的代码缩小到问题所在。当有多个问题时,问多个问题Hanks David,这很有帮助。错过了那个点。但是现在它将我发送到另一个页面,在那里它给出了错误,我希望它首先运行Jquery验证,然后发布。。有什么想法吗?@vincodisouza:Define给出了错误。请理解,我从这里看不到您的屏幕。堆栈溢出是调试器的一个很差的替代品,您能否指定代码行为偏离预期的确切位置?错误消息,如无效电子邮件等。。我希望它显示在同一页上,但它会将我重定向到另一页。。我认为jquery验证不起作用。如何在php发布之前运行查询验证?@vincodisouza:我已经更新了答案。您在JavaScript代码中附加了错误的事件。这将是一个很好的机会来查看浏览器的调试工具,以帮助您逐步完成代码并查看运行时值。在编写代码时,调试是一个非常宝贵的过程。感谢您的更正。我在按钮点击表单提交之间切换。。忘了。。谢谢现在我看到了验证错误消息,但是表单没有反应。没有错误或成功消息,也没有发送邮件。有什么想法吗?
$('#send_message').on('submit',function(e){
$('#contact_form').on('submit',function(e){
$message = "Gönd.: " . $name . "<br />";
$message = "";