Qui ho un semplice script php che visualizza alcuni valori da un database in formato 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;
Questo visualizza bene, ecco l'esempio di stampa:
[{"title":"Torus","date":"2012-04-04","time":"23:06:14"}]
Poi, quando l'immagine viene cliccato questo jQuery è chiamato:
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);
}
});
Tuttavia, il (titolo, data & ora) le variabili vengono visualizzate come "non definite" nella casella di avviso. Ho provato diversi modi di implementare la chiamata ajax e la stessa cosa succede ogni volta. È la prima volta che ci provo, ma non riesco a capirlo.
Hai usato un'intestazione corretta per il tuo script PHP? 'header ('Content-Type: application/json');' – brezanac