Abrufen von JSON-Daten mit AJAX
Im Versuch zum abrufen von Daten aus JSON-Objekt enthält Informationen zum Standort wie streetname, postcode, etc. Aber nichts wird abgerufen, wenn ich versuchen, und steckte es in meine div. Kann jemand sehen, wo im gehend mit diesem falschen?
Dies ist mein ajax-code anfordern und abrufen der Daten
var criterion = document.getElementById("address").value;
$.ajax({
url: 'process.php',
type: 'GET',
data: 'address='+ criterion,
success: function(data)
{
$('#txtHint').html(data);
$.each(data, function(i,value)
{
var str = "Postcode: ";
str += value.postcode;
$('#txtHint').html(str);
});
//alert("Postcode: " + data.postcode);
},
error: function(e)
{
//called when there is an error
console.log(e.message);
alert("error");
}
});
Wenn diese ausgeführt wird, im Browser ist einfach nur sagt "PLZ: undefiniert".
Dies ist der php-code, um die Daten aus der Datenbank.
$sql="SELECT * FROM carparktest WHERE postcode LIKE '".$search."%'";
$result = mysql_query($sql);
while($r = mysql_fetch_assoc($result)) $rows[] = $r;
echo json_encode($rows), "\n"; //Puts each row onto a new line in the json data
data: 'address='+ criterion,
können leicht geändert werden, umdata: { address: criterion }
, macht es einfacher, mehr hinzuzufügen.- Welche Fehler zeigen, bis in Ihre Firebug -, PHP -, und MySQL-logs?
- darüber hinaus, da Sie mit JQuery - Sie können ersetzen getElementById einfach mit $("#Adresse")
- Auch - eine top-AJAX Tipp ist, öffnen Sie die Ziel-URL direkt in einem browser, um sicherzugehen, dass das funktioniert, und dann wissen Sie, ob der Fehler liegt in abholen das Ergebnis, oder zu interpretieren.
- Versuchen Sie, geben Sie die url Ihrer Seite, so können wir einen Blick in die JS-Konsole Ausgang für uns.
- Wenn ich nur die Anzeige der 'Daten' in der txtint div es zeigt alle Informationen wie z.B. [{"name":"carpark1","street":"Hauptstraße","PLZ":"de224bt","type":"long stay","long":"23","lat":"12"}, ich muss nur zum extrahieren von teilen davon, wie die PLZ.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fehlen Daten Typ:
Können Sie auch die $.getJSON
EDIT: Beispiel JSON
.html()
. Wenn Sie alert die Daten, was wird angezeigt?Schaut Euch an, was Ihr code tut.
Zunächst legen Sie die Daten direkt in die
#txtHint
box.Dann, für jedes Daten-element, erstellen Sie die Zeichenfolge
"Postcode: "+value.postcode
(ohne selbst überprüfen, wennvalue.postcode
existiert wohl nicht), und überschreiben Sie den html-Code in#txtHint
mit ihm.Ergebnis: das script tut genau das, was Sie gesagt haben, es zu tun.
Entfernen Sie das loop-Ding, und sehen, was Sie bekommen.
Macht Ihre JSON-Daten sind mehrere Zeilen mit der gleichen Objekt-Struktur? Bitte informieren Sie das Daten-Objekt in Ihrem Erfolg-Funktion und poste Sie, damit wir helfen können, Sie zu Debuggen.
Verwenden Sie die
param in deinem ajax-Aufruf
oder verwenden Sie $.getJSON(), Die automatisch konvertieren von JSON-Daten in ein JS-Objekt.
Können Sie auch konvertieren der JSON-Antwort in das JS-Objekt selbst mit $.parseJSON() innen Erfolg-callback-wie dies
Dies funktioniert für mich auf Ihrer Website: