使用AJAX进行PHP表单验证
我正试着让我的电子邮件表格正常工作,但出了点问题。 我在接收电子邮件时没有遇到任何问题,但是使用JSON(验证成功)编写ajax脚本的过程没有正常工作,我不知道为什么 我的HTML:使用AJAX进行PHP表单验证,php,jquery,ajaxform,Php,Jquery,Ajaxform,我正试着让我的电子邮件表格正常工作,但出了点问题。 我在接收电子邮件时没有遇到任何问题,但是使用JSON(验证成功)编写ajax脚本的过程没有正常工作,我不知道为什么 我的HTML: <form id="feedback" method="post" action=""> <div class="enter-data"> <label for="name"><span>Nome:</span>&
<form id="feedback" method="post" action="">
<div class="enter-data">
<label for="name"><span>Nome:</span></label>
<input name="name" id="name" type="text" class="formbox">
</div>
<div class="enter-data">
<label for="email"><span>E-mail:</span> </label>
<input name="email" id="email" type="text" class="formbox">
</div>
<div class="enter-data">
<label for="telefone"><span>Telefone:</span></label>
<input name="telefone" id="telefone" type="text" class="formbox">
</div>
<div class="enter-commnet">
<label for="comments"></label>
<textarea name="comments" id="comments"></textarea>
</div>
<div class="button_comment-bx">
<button class="button_comment last" name="send" id="send" type="submit">Enviar</button>
<button class="button_comment" name="reset" id="reset" type="reset">Limpar</button>
</div>
</form>
诺姆:
电邮:
电话:
羡慕
林帕尔
我的jquery**
(编辑)
**:
$(文档).ready(函数(){
$(“#反馈”)。提交(函数(){
$(“.error”).remove();
var检查=真;
var emailPattern=/^[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\[a-zA-Z]{2,4}$/;
var name=$(“#name”).val();
var email=$(“#email”).val();
var telefone=$(“#telefone”).val();
//验证名称
如果(名称=“”){
检查=错误;
$(“#name”)。在(“*Preencha o seu nome!”)之后;
}
else if(name.length<3){
检查=错误;
$(“#name”)。在(“*Nome demasiado curto!!”)之后;
}
//验证电子邮件
如果(电子邮件=“”){
检查=错误;
$(“#email”)。在(“*Preencha o seu email!”)之后;
}
否则如果(email.length<5){
检查=错误;
$('email')。之后('email demasiado curto!');
}
如果(!emailPattern.test(电子邮件)){
检查=错误;
$('email')。之后('email nãoéválido!');
}
//验证电传
如果(电话号码=“”){
检查=错误;
$('telefone')。之后('Preencha o seu telefone!');
}
否则如果(电话线长度<5){
检查=错误;
$('telefone')。在('telefone nãoéválido!')之后;
}
//如果验证成功
$.ajax({
类型:“POST”,
url:“contact3.php”,
数据:$(“#反馈”).serialize(),
数据类型:“json”,
成功:功能(响应){
$(“#评论”)。之后('Email enviado com successo!');
$('#name').val('');
$('#email').val('');
$('telefone').val('');
$('注释').val('');
}
});
});
});
用于发送邮件的PHP脚本**
(编辑)
**
您缺少脚本的返回值。您必须回显json_编码的字符串,如果(!response.mailsucture)
编辑:
$.ajax({
type: "POST",
url: "contact3.php",
data: $("#feedback").serialize(),
dataType: "json",
success: function(response){
$("#comments").after('<div class="success">Email enviado com sucesso!</div>');
$('#name').val('');
$('#email').val('');
$('#telefone').val('');
$('#comments').val('');
}
});
$.ajax({
类型:“POST”,
url:“contact3.php”,
数据:$(“#反馈”).serialize(),
数据类型:“json”,
成功:功能(响应){
$(“#评论”)。之后('Email enviado com successo!');
$('#name').val('');
$('#email').val('');
$('telefone').val('');
$('注释').val('');
}
});
怎么了?您是否有错误、意外行为?请解释更多;)难道PHP不应该在发送电子邮件后返回success消息并让jQuery在success函数中检查该消息吗?您没有回显包含mailSuccess信息的json数组,ajax如何知道ajax调用是否成功?什么都没有告诉我们?JS代码有问题吗?AJAX调用不起作用?PHP中的问题?电子邮件不起作用?Aarry刚才说了我想说的话。在我的表单中,根据电子邮件是否成功发送,我回显TRUE或FALSE感谢您的帮助,但问题仍然存在,我认为这就是问题所在,回显json_编码的字符串,jquery将在(!response.mailsucture)中签入该字符串。我是如何说我从表单接收电子邮件没有任何问题,但是脚本不会触发json验证的最后部分再次感谢您的努力;),但现在当我提交页面刷新并变为空白时。。。我的问题是根据你的建议编辑的。谢谢,我会再试一次。请稍等
<?php
$to ='myemail@email.com';
// Contact subject
$subject ="Contacto Site";
$header="from: $name <$email>";
$nome = $_POST['name'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$mensagem = $_POST['comments'];
// Corpo da mensagem
$body = "Nome: ".$nome;
$body.= "\n";
$body.= "Email: ".$email;
$body.= "\n";
$body.= "Telefone: ".$telefone;
$body.= "\n";
$body.= "\n";
$body.= nl2br($mensagem);
// Enter your email address
mail($to,$subject,$body,$header);
echo json_encode(array('mailSuccess' => 1));
<?php
$to ='myemail@email.com'; // Contact subject $subject ="Contacto Site";
$header="from: $name <$email>";
$nome = $_POST['name']; $email = $_POST['email']; $telefone = $_POST['telefone']; $mensagem = $_POST['comments'];
// Corpo da mensagem $body = "Nome: ".$nome; $body.= "\n"; $body.= "Email: ".$email; $body.= "\n"; $body.= "Telefone: ".$telefone; $body.= "\n"; $body.= "\n"; $body.= nl2br($mensagem);
// Enter your email address
mail($to,$subject,$body,$header);
echo json_encode(array('mailSuccess' => 1));
?>
$.ajax({
type: "POST",
url: "contact3.php",
data: $("#feedback").serialize(),
dataType: "json",
success: function(response){
$("#comments").after('<div class="success">Email enviado com sucesso!</div>');
$('#name').val('');
$('#email').val('');
$('#telefone').val('');
$('#comments').val('');
}
});