Ajax从PHP函数中获取错误或成功消息

时间:2014-06-06 06:02:24

标签: php jquery ajax

我使用JSON帖子将数据发布到php函数。我希望收到两种不同类型的回复,成功错误。 例如,以下函数:

function some_function(){

    if ($error){
        echo "some error";
        exit;
    } else {    
        echo "everything is ok"
        exit;
    }

}

在这种情况下,两条消息都将返回成功。如何使错误消息返回到ajax中的错误函数? 这是ajax代码:

jQuery.ajax({

    url: '<?php echo $url; ?>',
    data: response,
    dataType: 'JSON',
    type: 'POST',
    success:function(data){
        console.log(data);
    },
    error: function(data, errorThrown){
        console.log(errorThrown);
    }

});

4 个答案:

答案 0 :(得分:3)

试试这个:

jQuery.ajax({

    url: '<?php echo $url; ?>',
    data: response,
    dataType: 'JSON',
    type: 'POST',
    success:function(data){
        if(data['error']){
           alert(data['error']);
          }else{
             alert(data['success']);
          }
    },
    error: function(data, errorThrown){
        console.log(errorThrown);
    }

});

在PHP页面上:

function some_function(){

        if ($error){
            $msg = array("error"=>"some error";
        } else {    
            $msg = array("success"=>"everything is ok");
        }
       echo json_encode($msg);die;
    }

答案 1 :(得分:3)

如果要强制它转到错误回调,那么只需从服务器强制执行错误的响应。考虑这个例子:

<?php

$url = 'index.php'; // sample value

function response($value) {
    if($value == 'true') {
        http_response_code(200);
        $data = array('status' => 200, 'message' => 'Server response is okay!');
        echo json_encode($data);
    } else {
        http_response_code(404);
    }
    exit;
}

if(isset($_POST['response'])) {
    $response = $_POST['response'];
    response($response);
}

?>


<script src="jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){

    jQuery.ajax({

        url: '<?php echo $url; ?>',
        data: {response: true}, // <-- set to TRUE or FALSE 
        dataType: 'JSON',
        type: 'POST',
        success:function(data){
            console.log(data);
        },
        error: function(data, errorThrown){
            console.log('error => ' + errorThrown);
        }

    });

});
</script>

答案 2 :(得分:0)

谢谢。下面的JSON示例工作正常。请找到它。

jQuery.ajax({

url: '<?php echo $url; ?>',
data: response,
dataType: 'JSON',
type: 'POST',
success: response_function
});

response_function(response){
 if(response.status == 1){
     //success response
     alert(response.message);
 }else{
      //failure response 
      alert(response.message);
      return false;
 }
 }

在php脚本页面

 function some_function(){

    if ($error){
        $msg = array("status"=> '1',    "message"=>"success message");
    } else {    
        array("status"=> '0', "message"=>"some error");
    }
   echo json_encode($msg);die;
}

Elangovan

答案 3 :(得分:-1)

我没有足够的声誉来评论,但是从JQuery 1.5开始,您需要使用

//
//  MocaAdmin-Bridging-Header.h
//  MocaAdmin
//

#import <LFHeatMap/LFHeatMap.h> 

获取PHP返回的json_encoded数组。