【问题标题】:how to use php json_encode($var) in result function in ajax如何在ajax的结果函数中使用php json_encode($var)
【发布时间】:2013-12-27 05:17:09
【问题描述】:

//这是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"}}]

【问题讨论】:

    标签: php jquery ajax json cakephp


    【解决方案1】:

    我假设您正在尝试在您的 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  
                }
    

    【讨论】:

      【解决方案2】:

      您可以通过“.”访问这些 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);
                          }
                      });
      

      【讨论】:

        【解决方案3】:
        success :   function(data) {
                       $.each(data, function (key, val) {
                                alert(val.SurveyFilter);
                       })
        

        }

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

        【讨论】:

          【解决方案4】:

          试试这样,你有错别字

          更改数据类型 =>数据类型

          $.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);
                  })
              }
          });
          

          【讨论】:

            【解决方案5】:

            你可以使用Firebug -> network 查看json类型的结果,然后你就可以知道结果的结构并进行下一步

            【讨论】:

              猜你喜欢
              • 2011-04-03
              • 2022-06-19
              • 2017-10-15
              • 2012-09-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-12
              • 2021-02-06
              相关资源
              最近更新 更多