2011-01-30 74 views
0

我有一个从MySQL选择一些数据的PHP脚本,扔到下面的行读取数据:如何从JSON对象

$json_arr[] = array ('date'=>$human_date,'weight'=>$data['weight']); 

当我和PHP4我使用的Services_JSON(运行服务器的http://pear.php.net/pepr/pepr-proposal-show.php?id=198)脚本,以JSON-IFY的数据:

$json = new Services_JSON(); 
echo $json->encode($json_arr); 

在我想告诉所有的权重&日期JS文件:

$.getJSON('ajax/getweights.php', {userid: userid}, function(data) { 

    $.each(data, function(k, v) { 
    alert(v + ': ' v); 
    }); 
}); 

当我运行脚本时,我没有得到想要的结果,例如2011-01-10:90,2011-01-15:92,2011-01-18:89。

林相当新的jQuery的,我一直在寻找的净答案,我试图找出如何阅读这些资料 - 我希望有人能帮助我:)

回答

1

假设服务器发送数据按以下格式:

[ { date: '2011-01-10:90', weight: '1' }, 
    { date: '2011-01-15:92', weight: '2' }, 
    ... 
] 

你可以:

$.each(data, function(k, v) { 
    alert('date: ' + v.date + ' | weight: ' + v.weight); 
}); 
+0

谢谢,它的工作原理就像一个魅力:) – 2011-01-30 10:51:10

0

更简单的方法来实现这一目标:

$json_arr[] = array(
    'date' => $human_date, 
    'weight' => $data['weight'] 
); 

$json = new Services_JSON(); 
echo 'processData(' . $json->encode($json_arr) . ')'; 

和Javascript:

// Callback function which processes the data 
function processData(data) { 
    for(var i = 0; i < data.length; i++) 
    alert(data[i].date + ', ' + data[i].weight); 
} 

// Here we import the data 
var s = document.createElement('script'); 
s.src = 'ajax/getweights.php'; 
document.body.appendChild(s);