我已经在这里待了半天以上,试图找出这个问题,我发誓,我已经尝试了所有可能的事情。所以这就是我想要做的事情背后的想法...每10秒Javascript执行一次AJAX调用,看看你是否有在线朋友,然后返回用户列表,他们的状态等。而不是格式化PHP中的所有内容,我会出于各种原因从Javascript格式化它......所以这里发生了什么:
的Javascript //让我们从控制器获取数据
$.post('/pagething', { datastuff }, function(data){
if(data.status == 'ok'){
// Magic nonsense here that can translate the array example:
var keys = Object.keys(data.allfriends);
}
} etc...
PHP //让我们跳过控制器中的其他代码并关注重要的东西
$friends_information = array(
'userid' => array();
'username' => array();
'avatar' => array();
'status' => array();
);
foreach($result_from_my_friends_model as $row){
// For ease of read, i'll just associate things with $row
$friends_information["userid"][] = $row->user_id;
$friends_information["username"][] = $row->username;
$friends_information["avatar"][] = $row->avatar;
$friends_information["status"][] = $row->status;
}
$result = array('status' => 'ok', 'allfriends' => $friends_information);
return json_encode($result);
exit();
我最接近的是要么通过说出用户名获得结果,要么通过新对象获取结果或获取整个结果但是因为对象[0] [1]无法区分密钥将返回undefined。
先谢谢你,这个东西很难理解:/
答案 0 :(得分:1)
没有必要将每列放入$friend_array
的单独元素中,如果将所有与特定朋友相关的数据保存在一个对象中,事情通常会更容易。所以:
$result = array('status' => 'ok', 'allfriends' => $result_from_my_friends_model);
echo json_encode($result);
在Javascript中,请确保指定结果为JSON:
$.post('/pagething', { datastuff }, function(data) {
if (data.status == 'ok') {
$.each(data.allfriends, function(i, friend) {
// do stuff with friend.userid, friend.username, friend.avator, friend.status
});
}
}, 'json');
答案 1 :(得分:0)
您已经在js的keys
变量中拥有list_of_friend。只需遍历它,您就可以获得所需的结果。祝你好运