2012-04-06 84 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