$ .jquery ajax返回的数据(json)显示为’undefined’

这里我有一个简单的PHP脚本,它以json格式显示数据库中的一些值。

$source = $_GET['source']; $query = mysql_query("SELECT * FROM images WHERE big_thumb = '" . $source . "'"); $results = array(); while($row = mysql_fetch_array($query)) { $results[] = array( 'title' => $row['title'], 'date' => $row['upload_date'], 'time' => $row['upload_time'] ); } $json = json_encode($results); echo $json; 

这显示正常,inheritance人输出示例:

 [{"title":"Torus","date":"2012-04-04","time":"23:06:14"}] 

然后,当单击图像时,将调用此jquery:

 var image_src = $(this).attr("alt"); // <= This works fine $.ajax({ url: 'inc/get_image_details.php', data: {source : image_src}, dataType: "json", success: function(data) { title = data.title; alert(title); date = data.date; alert(date); time = data.time; alert(time); } }); 

但是,(标题,日期和时间)变量在警告框中显示为“未定义”。 我已经尝试了多种实现ajax调用的方法,每次都会发生同样的事情。 这是我第一次尝试它,但我无法理解。

您的json字符串具有数组格式。 您需要像这样访问json对象属性

 title = data[0].title; alert(title); date = data[0].date; alert(date); time = data[0].time; alert(time); 

如果您控制json格式并且不需要数组,请使用具有此格式的json对象。

 {"title":"Torus","date":"2012-04-04","time":"23:06:14"} 

在这种情况下,您可以保持现在的代码。