Javascript $。每个只显示json的第一个值和其他值在ajax成功中显示为未定义。?
大家好,我正在尝试获取json数组的值,单位为$。each,并获取传递给另一个ajax的值。该值正在从控制器发送到视图,但无法使用$。each函数显示值。让我向您展示我的代码来解释问题所在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
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'这是作为答案发布的,但它不会试图回答问题。它可能是编辑、评论、其他问题,或者完全删除。