Javascript $。每个只显示json的第一个值和其他值在ajax成功中显示为未定义。?

Javascript $。每个只显示json的第一个值和其他值在ajax成功中显示为未定义。?,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,大家好,我正在尝试获取json数组的值,单位为$。each,并获取传递给另一个ajax的值。该值正在从控制器发送到视图,但无法使用$。each函数显示值。让我向您展示我的代码来解释问题所在 function getfriend_requests() { var id=$('.id_data').attr('value'); jQuery.ajax({ type:'POST', url

大家好,我正在尝试获取json数组的值,单位为$。each,并获取传递给另一个ajax的值。该值正在从控制器发送到视图,但无法使用$。each函数显示值。让我向您展示我的代码来解释问题所在

    function getfriend_requests()
    {
    var id=$('.id_data').attr('value');

    jQuery.ajax({
                    type:'POST',
                    url:'<?php echo base_url("user/getallfriends"); ?>',
                    data:{id:id},
                    dataType:'json',
                    success:function(data)
                    {   
                        console.log(data);
                            var ParsedObject = JSON.stringify(data);
                        var friend_request_data= $.parseJSON(ParsedObject);

                          $.each(friend_request_data, function(key,data) 
                            {

                              var uname=data.uname;
                              var senders_id=data.senders_id;
                               alert(senders_id);
                              var recievers_id=data.recievers_id;
                              var request_status=data.request_status;
                               alert(recievers_id);
                               alert(uname);
                              jQuery.ajax({
                            type:'POST',
                            url:'<?php  echo base_url("user/get_friends_Data"); ?>',
                            data:{senders_id:senders_id,recievers_id:recievers_id},
                            dataType:'json',
                            success:function(data)
                            {
                                   console.log(data); 
                                    var ParsedObject = JSON.stringify(data);
                                     var sender_values = $.parseJSON(ParsedObject);
                                // var senders_name=sender_values.sender_data;
                                // alert(senders_name);
                                var id=$('.id_data').attr('value');
                                    $.each(sender_values, function(key,data) 
                       {
                        var uname = data.uname;
                        var senders_id=data.id;

                        alert(uname);
                        alert(senders_id);
                        // $('.senders_div').attr('senders_id', $senders_id);
                        // if(senders_id==id)
                        // {

                        // }
                        // else{
                        //    if(uname){  
                        //     alert(request_status);
                        //     if(request_status=='pending')
                        //     {
                        //       //alert('hello');
                        //     }else{
                        //       //alert('data');
                        //     }

                            $('.friends_sidebar').append('<div>'+uname +'</div>');




                         });
                            //       $.each(sender_values,function,(key,data)
                            //       {
                            //         var uname = data.uname;
                            //          if(uname){  
                            // $('.friends_sidebar').html('<div>'+uname +'has sent you a request</div>');

                            //  }
                            //       });
                              }
                        });
                            });
                    }
                });
    }

now in this code when i try to use 'friend_request_data' it shows undefined alerting values all shows undefined. so i cant send the values to the second ajax that i am using 
let me also show you the controller 

        public function getallfriends()
    {
      $id=$this->input->post('id');
      $this->load->model('Pmodel');
      $data['senders']=$this->Pmodel->get_all_user_friends_sender($id);


      $data['recievers']=$this->Pmodel->get_all_user_friends_reciever($id);

      echo json_encode($data);
    }
    public function get_friends_Data()
    {
       $senders_id=$this->input->post('senders_id');
       $user_id = $this->session->userdata('user_id');
        $recievers_id=$this->input->post('recievers_id');
        $this->load->model('Pmodel');

    if($user_id==$senders_id)
    {

    }else{
      $userdata['senders_data']=$this->Pmodel->getUserdata($senders_id);

    }

    if($user_id==$recievers_id)
    {

    }
    else{
      $userdata['recievers_data']=$this->Pmodel->getUserdata($recievers_id);
    }

    echo json_encode($userdata);
    }
    }
函数getfriend_requests() { var id=$('.id_data').attr('value'); jQuery.ajax({ 类型:'POST', url:“”, 数据:{id:id}, 数据类型:'json', 成功:功能(数据) { 控制台日志(数据); var ParsedObject=JSON.stringify(数据); var friend_request_data=$.parseJSON(ParsedObject); $.each(友元请求数据、函数(键、数据) { var uname=data.uname; var senders\u id=data.senders\u id; 警报(发送者标识); var receivers_id=data.receivers_id; var请求_状态=data.request_状态; 警报(接收器id); 警惕(联塞特派团); jQuery.ajax({ 类型:'POST', url:“”, 数据:{发送者id:发送者id,接收者id:接收者id}, 数据类型:'json', 成功:功能(数据) { 控制台日志(数据); var ParsedObject=JSON.stringify(数据); var sender_values=$.parseJSON(ParsedObject); //var senders\u name=sender\u values.sender\u data; //警报(发送者名称); var id=$('.id_data').attr('value'); $.each(发送方值、函数(键、数据) { var uname=data.uname; var发送者_id=data.id; 警惕(联塞特派团); 警报(发送者标识); //$('.senders\u div').attr('senders\u id',$senders\u id); //如果(发送者\u id==id) // { // } //否则{ //如果(联塞特派团){ //警报(请求状态); //如果(请求状态=='pending') // { ////警报(“你好”); //}其他{ ////警报(“数据”); // } $('.friends\u侧边栏')。追加(''+uname+''); }); //$.each(发送器值、函数、(键、数据) // { //var uname=data.uname; //如果(联塞特派团){ //$('.friends_边栏').html('+uname+'已向您发送请求'); // } // }); } }); }); } }); } 现在,在这段代码中,当我尝试使用“friend\u request\u data”时,它会显示未定义的警报值,所有警报值都会显示未定义。因此,我无法将这些值发送到我正在使用的第二个ajax 让我给你看看控制器 公共函数getallfriends() { $id=$this->input->post('id'); $this->load->model('Pmodel'); $data['senders']=$this->Pmodel->get\u all\u user\u friends\u sender($id); $data['receivers']=$this->Pmodel->get\u all\u user\u friends\u receiver($id); echo json_编码($data); } 公共函数get_friends_Data() { $senders\u id=$this->input->post('senders\u id'); $user\u id=$this->session->userdata('user\u id'); $receievers_id=$this->input->post('receievers_id'); $this->load->model('Pmodel'); 如果($user\u id==$senders\u id) { }否则{ $userdata['senders\u data']=$this->Pmodel->getUserdata($senders\u id); } 如果($user\u id==$receivers\u id) { } 否则{ $userdata['receivers\u data']=$this->Pmodel->getUserdata($receivers\u id); } echo json_encode($userdata); } } 这段代码在echo json_encode($userdata)中完全有效,所有值都显示在firebug控制台中


您能告诉我哪里错了吗?

为什么要使用
$each
来迭代数据


您可以使用一个简单的
for
-循环,这样就可以删除
JSON.stringify
JSON.parse

您可以解释这部分吗?
var ParsedObject=JSON.stringify(数据);var friend\u request\u data=$.parseJSON(ParsedObject)
如果必须进行字符串化,然后重新分析,似乎有问题。如果我不分析该值,它将只显示未定义的或对象对象。我认为问题可能与查询有关,因为当我返回$query->result\u数组时,它显示未定义,否则如果我使用$query->row\u数组,它将返回一行而不是整个数组@DagosPodaru'这是作为答案发布的,但它不会试图回答问题。它可能是编辑、评论、其他问题,或者完全删除。