繁体   English   中英

如何从Ajax中的Controller获取JSON对象

[英]How to get json objects from Controller in ajax

我正在用jquery ajax和php编写邮件验证控制器。

在验证php控制器中的消息后,我试图通过ajax获取消息并通过jquery在屏幕上打印。

我的ajax代码看起来像这样

....

success: function(data) {
     var jsonObj = jQuery.parseJSON(data);
        if (jsonObj.result) {
                //succes message

        }
        else {
            $.each([jsonObj.errors],function(key,value){
                console.log(jsonObj.errors);
            });

        }
    }

错误的console.log显示:

[Object]
0: Object
email: "Email validation error message"
name: "Name validation error message"
phone: "phone validation error message"
__proto__: Object
length: 1

.......

如何获得电子邮件的价值以在屏幕上打印? 我想做类似的事情:如果电子邮件错误不为空,则显示错误消息。

您应该将代码更改为以下内容:

success: function(data) {
     var jsonObj = jQuery.parseJSON(data);
    if (jsonObj.result) {
            //succes message

    }
    else {
        $.each([jsonObj.errors],function(key,value){
            if (typeof jsonObj.errors[0].email !== 'undefined') {
                console.log(jsonObj.errors[0].email);
            }
        });

    }
}

假设您在控制器中有一个数组:

  Array
    (
        [message] => json object from controller
        [data] => Array
            (
                [name] => user25354i
                [profile_views] => 234
            )

    )
$array = array('message'=>"json object from controller",
               'data'=>array('name'=>'user25354i','profile_views'=>'234'));

返回$ array为: echo json_encode($array);exit;

现在在jQuery中,默认情况下它将被视为json对象,因此您可以简单地访问此数组,如下所示:

success: function(response) {
     alert(response.message);
     alert(response.data.name);
     so on...
    }

希望它能回答您的问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM