$ .jquery ajax zurückgegebene Daten (json) wird als 'undefiniert' angezeigt

2012-04-06 10 views
6

Hier habe ich ein einfaches PHP-Skript, das einige Werte aus einer Datenbank im JSON-Format anzeigt.

$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; 

Dies zeigt feines, heres ein Ausgabebeispiel:

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

Dann, wenn ein Bild dieses jquery geklickt wird aufgerufen:

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); 
     } 
    }); 

jedoch der (Titel, Datum & Zeit) Variablen werden in der Alarmbox als 'undefiniert' angezeigt. Ich habe mehrere Möglichkeiten versucht, den Ajax-Aufruf zu implementieren und das gleiche passiert jedes Mal. Es ist das erste Mal, dass ich es ausprobiert habe, aber ich kann es nicht fassen.

+3

Haben Sie einen richtigen Header für Ihr PHP-Skript verwendet? 'header ('Content-Type: application/json');' – brezanac

Antwort

21

Ihre JSON-Zeichenfolge hat ein Array-Format. Sie müssen die json Objekteigenschaften wie diese

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

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

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

zugreifen Wenn Sie das JSON-Format zu steuern und ein Array ist nicht notwendig, ein JSON-Objekt mit diesem Format verwenden.

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

In diesem Fall können Sie Ihren Code beibehalten, wie er jetzt ist.

+0

Das ist in Ordnung. Danke Claudio. – loxyboi

Verwandte Themen