【问题标题】:How to access only one object send by json not the whole array in ajax success function?如何仅访问由json发送的一个对象而不是ajax成功函数中的整个数组?
【发布时间】:2017-03-01 18:46:37
【问题描述】:

我正在尝试使用 json_encode 和 ajax 函数从控制器接收数据到视图。但是我正在通过 json 发送到单独的值,并且我正在尝试访问它。那么如何将这两个对象分开,并且只得到一个值呢?

让我给你看我的代码:

 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>');
                     });
                    }
                });         

            }
        });
    }

现在是控制器代码

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);

}

json 值 '$senders' 保存这两个值,但是当我尝试使用 'each' 函数访问它时,它会显示两次值,而 uname 只有一列。让我添加一些图像来解释。

我哪里错了?

【问题讨论】:

  • echo json_encode($senders); 的输出是什么?
  • 您是否在正确的数组元素上运行“每个”调用?或者你是在一个有多个子元素的“父”数组上运行它,认为这个数组应该只有一个“uname”?
  • @JorgeObregon 我正在 $senders 上运行包含其他值的 ajax,这有什么问题吗?

标签: javascript php jquery json ajax


【解决方案1】:

尝试如下改变:-

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

注意:-

1.您正在附加所有用户名(这是不正确的)。

2.您没有检查用户名是否未定义或为空或为空等

【讨论】:

  • 让它工作了@Anant,但出于好奇,你能告诉我为什么显示 undefined 吗?
  • 1.您正在附加所有用户名。2.您没有检查名称是否未定义、空、空等
猜你喜欢
  • 2011-07-27
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多