2012-04-06 72 views
6

这里我有一个简单的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; 

这将显示优良,下面有一个输出例如:

[{"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调用的方式,每次都会发生同样的事情。 这是我第一次尝试它,但我无法想象它。

+3

您是否为PHP脚本使用了正确的标题? 'header('Content-Type:application/json');' – brezanac 2012-04-06 16:06:27

回答

21

你的json字符串有一个数组格式。你需要像这样访问

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

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

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

JSON对象的属性如果你控制了JSON格式以及数组是没有必要的,使用JSON对象与此格式。

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

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

+0

这就行了。 Thankyou Claudio。 – loxyboi 2012-04-06 16:11:27