Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX进行PHP表单验证_Php_Jquery_Ajaxform - Fatal编程技术网

使用AJAX进行PHP表单验证

使用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>&

我正试着让我的电子邮件表格正常工作,但出了点问题。 我在接收电子邮件时没有遇到任何问题,但是使用JSON(验证成功)编写ajax脚本的过程没有正常工作,我不知道为什么

我的HTML:

 <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('');
    } 
});