如何通过ajax将回应响应(文本)放入警报框?

时间:2012-10-02 02:26:26

标签: php ajax response echo

我是php和ajax的新手,我试图通过ajax(没有reflesh)发送php表单数据,并通过ajax sucess在警告框中显示php的echo msg,但它没有用。 代码如下:

jQuery(document).ready(function(){
        jQuery('#ajax_form').submit(function(){
            var dados = jQuery( this ).serialize();

            jQuery.ajax({
                type: "POST",
                url: "env.php",
                data: dados,
                success: function( data )
                {
                    alert( data );
                }
            });

            return false;
        });
    });

和php回应响应(发送和错误):

 $erros = "";

 if(empty($_POST['nome'])){
     $erros .= "O nome deve ser preenchido.";
 }

 if(empty($_POST['email']) ){
      $erros .= "O E-mail deve ser preenchido.";
 }else{
      $email = $_POST['email'];
      eregi("([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)",$email,$match);
    if(!isset($match)){
       $erros .= "O e-mail informado é inválido.";
    }
}

if(empty($_POST['mensagem'])){
    $erros .= "A mensagem deve ser preenchida.";
}
if( empty($erros) ){

all the code to get form data and send

 $send = $phpmail->Send();

    if($send){
        echo "A Mensagem foi enviada com sucesso.";
    }else{
        echo "Não foi possível enviar a mensagem. Erro: " .$phpmail->ErrorInfo;
    }

    }else{
        echo $erros;
    }

我想把env.php的echo消息放在警报上,但我真的不知道怎么做,我试着放数据,但是它显示了整个文档(在文本表单上用html)。 有人可以帮帮我吗?

ps:表单位于.html上,而php位于.php

修改

我试图添加$json = json_encode($erros);但它不会工作,我怎么能在成功的ajax函数上读到这个? (在警报框上)


我试图添加$ json = json_encode($ erros);但它不会工作,我怎么能在成功的ajax函数上读到这个? (在警报框上)

2 个答案:

答案 0 :(得分:0)

env.php需要仅使用您想要的数据来响应AJAX调用,而不是整个页面。您所要做的就是修改env.php,使其不具备您不需要的所有HTML内容。

答案 1 :(得分:0)

这就是我的朋友:

jQuery(document).ready(function(){
        jQuery('#ajax_form').submit(function(){
            var dados = jQuery( this ).serialize();

            jQuery.ajax({
                type: "POST",
                url: "env.php",
                data: dados,
                success: function( data )
                {
                    var data_output = data;
                    alert(data_output);
                }
            });

            return false;
        });
    });