如何在ajax中的结果函数中使用php json_encode($ var)

时间:2013-12-27 05:17:09

标签: php jquery ajax json cakephp

//这是ajax代码

var survey_id = $(this).val();
var user_id = $('#SurveyFilterUserId').val();
            $.ajax({
                type        : 'POST',
                dataTyle    : 'Json',
                url         : '<?php echo BASEURL; ?>/admin/Users/survey_filters_edit/',
                data        : {
                    'data[find][survey_id]'     :survey_id,
                    'data[find][user_id]'       :user_id
                },
                success :   function(result){
                    // Here is the problem
                }
            });

//这是我的CakePHP查找查询

$surveyFilter = $this->SurveyFilter->find('all', 
                                        array( 'conditions'=>
                                          array('SurveyFilter.survey_id' => $survey_id,
                                                'SurveyFilter.user_id' => $user_id)));

            echo json_encode($surveyFilter);
            die();

//这是我的输出 //此输出是查询查询

的json_encode输出
[{"SurveyFilter":{"survey_id":"1","user_id":"8","object_id":"1","object_type":"devices","created":"2013-12-27 09:34:04","modified":"2013-12-27 09:34:04"}},{"SurveyFilter":{"survey_id":"1","user_id":"8","object_id":"2","object_type":"devices","created":"2013-12-27 09:34:04","modified":"2013-12-27 09:34:04"}},{"SurveyFilter":{"survey_id":"1","user_id":"8","object_id":"3","object_type":"devices","created":"2013-12-27 09:34:04","modified":"2013-12-27 09:34:04"}},{"SurveyFilter":{"survey_id":"1","user_id":"8","object_id":"1","object_type":"alerts","created":"2013-12-27 09:34:04","modified":"2013-12-27 09:34:04"}},{"SurveyFilter":{"survey_id":"1","user_id":"8","object_id":"10","object_type":"alerts","created":"2013-12-27 09:34:04","modified":"2013-12-27 09:34:04"}},{"SurveyFilter":{"survey_id":"1","user_id":"8","object_id":"11","object_type":"alerts","created":"2013-12-27 09:34:04","modified":"2013-12-27 09:34:04"}}]

5 个答案:

答案 0 :(得分:0)

您可以通过“。”访问这些json数据。像这样:

 var survey_id = $(this).val();
    var user_id = $('#SurveyFilterUserId').val();
                $.ajax({
                    type        : 'POST',
                    dataTyle    : 'Json',
                    url         : '<?php echo BASEURL; ?>/admin/Users/survey_filters_edit/',
                    data        : {
                        'data[find][survey_id]'     :survey_id,
                        'data[find][user_id]'       :user_id
                    },
                    success :   function(result){
                       console.log(result.survey_id);
                    }
                });

答案 1 :(得分:0)

success :   function(data) {
               $.each(data, function (key, val) {
                        alert(val.SurveyFilter);
               })

}

你必须处理嵌套对象,记住这一点。

答案 2 :(得分:0)

尝试这样的事情,你有错别字

更改dataTyle =&gt; dataType

$.ajax({
    type        : 'POST',
    dataType    : 'Json',
    url         : '<?php echo BASEURL; ?>/admin/Users/survey_filters_edit/',
    data        : {
        'data[find][survey_id]'     :survey_id,
        'data[find][user_id]'       :user_id
    },
    success :   function(result){
        $.each(result,function(k,obj){
                console.log(obj.SurveyFilter.survey_id);
                console.log(obj.SurveyFilter.user_id);
        })
    }
});

答案 3 :(得分:0)

我假设您正尝试在javascript函数中访问JSON数据。试试这个

          success :   function(result){
                // Here is the problem
                var returned_data = $.parseJSON(result);

                //Now manipulate parsed JSON data.
                //For test purposes log returned data

                console.log(returned_data);

                //access any field like this, for example access survey_id.
                returned_data.SurveyFilter.survey_id  
            }

答案 4 :(得分:0)

你可以使用Firebug - &gt;网络以json类型查看结果,然后您可以知道结果的结构并执行下一步