Frage

Ich versuche, ein $ .post () auf folgende Weise zu verwenden:

$.post("file.php", { file_id: $(this).val()}, function(data){...} Die file.php führt dann eine Datenbankabfrage und gibt ein Array mit einer Titel, Beschreibung und Bild Referenz.

Was soll ich dann tun ist, können die .val() für Formularfelder für jede aktualisieren. Ich verstehe, wie dies auf einer einzigen Variablen zu tun, wäre es nur folgend sein:

$.post("file.php", { file_id: $(this).val()}, function(data){ 
   $('#title').val(data);
}

Aber wie bekomme ich die Daten wieder erkennbar zu sein in jquery entweder als getrennte Variablen oder als Array?

Vielen Dank im Voraus

War es hilfreich?

Lösung

Siehe die Docs für $ .post . Der vierte Parameter ist der Datentyp. Sie können dies auf JSON gesetzt für Ihre Rückkehr Daten in ein JavaScript-Objekt oder ein Array analysiert werden.

$.post(
   "file.php", 
   { file_id: $(this).val() }, 
   function(data){ $('#title').val(data.title); $('#para').val(data.paragraph); },
   'json');

In Ihrer file.php Datei können Sie wie etwas tun

<?php
$return_data=array('title'=>'Fishes Go To Market','paragraph'=>'Lots of stuff');

header('Content-Type: application/json');
echo json_encode($return_data);
exit();

Achten Sie darauf, den Header include () so jQuery Ihre Daten kennt soll JSON sein, und zu verwenden json_encode so ist es richtig formatiert ist.

Sehen Sie json_encode docs für weitere Informationen auf das, und die docs auf Kopf . Denken Sie daran, Sie nicht anderer Ausgang kommen, bevor Sie Ihren Kopf haben () und die json_encoded Daten drucken oder die Header sowie die JSON ungültig wird.

Andere Tipps

Der einfachste Weg ist es, die Werte als JSON zurücklaufen. Sie müssen Ihre Array JSON auf dem Server (es gibt viele serverseitige Bibliotheken für dieses konvertieren ). Und ändern Sie Ihre .post() Methode die Daten als JSON zurück durch einen vierten Parameter hinzufügen:

$.post("file.php", { file_id: $(this).val()}, function(data) { ... }, "json");

Sie können dann füllen die Variablen so einfach wie:

$('#title').val(data.title);
$('#description').val(data.description);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top