简体   繁体   中英

How to access only one object send by json not the whole array in ajax success function?

I am trying to receive data from the controller to the view using json_encode and ajax functions. But I am sending to separate values through json, and I am tring to access it. So how can I separate those two objects, and get only a single value?

Let me show you my code:

 function check_relation_status()
    {
        var id=$('.id_data').attr('value');
        jQuery.ajax({
            type:'POST',
            url:'<?php echo base_url("user/check_relation_status"); ?>',
            data:{id:id},
            dataType:'json',
            success:function(data)
            {   
                console.log(data);
                    var ParsedObject = JSON.stringify(data);
                var sender_Data = $.parseJSON(ParsedObject);
                var senders_id=sender_Data.senders_id;
                
                jQuery.ajax({
                    type:'POST',
                    url:'<?php  echo base_url("user/get_senders_data"); ?>',
                    data:{id:senders_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);
                        $.each(sender_values, function(key,data) 
               {
                var uname = data.uname;
                // alert(uname);
               
                    $('#friendship_request').append('<div>'+uname +'has sent you a request</div>');
                     });
                    }
                });         

            }
        });
    }

now the controller code

public function get_senders_data()
{
$sender_id=$this->input->post('id');
$this->load->model('Pmodel');
$userdata=$this->Pmodel->getUserdata($sender_id);
$senders['senders_data']=$userdata;
$senders['senders_post'] = $this->Pmodel->get_all_count($sender_id);
// print_r($senders);
echo json_encode($senders);

}

the json value '$senders' holds both the values but when i try to access it usng 'each' function it shows the values two time when there is only a single column for uname . let me add some images to explain.

json 响应 看法

Where I am wrong?

Try to change like below:-

if(uname){
$('#friendship_request').html('<div>'+uname +'has sent you a request</div>');
}

Note:-

1.You are appending all usernames (which is not correct).

2.You are not checking that username is either undefined or null or empty etc

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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