Objekt erzeugen und PHP-Datei ansteuern

Also spontan fände ich die erste Variante auch übersichtlicher.
Wie werte ich denn im Success-Callback die Daten aus und veranlasse die Anzeige? (wird im tut nicht behandelt)
 
Das findest Du in der Doku von $.ajax:
http://api.jquery.com/jquery.ajax/
Du benötigst den success-Callback. Dieser hat die Daten vom Server als Eingangsparameter, so dass sie dir für die Anzeige zur Verfügung stehen.
Wenn Du nicht weißt, wie Du sie mit JS anzeigst, musst Du näher beschreiben, wie die Daten aussehen und wie und wo Du sie anzeigen möchtest.
 
Stehe grad bisl auf dem Schlauch...

Also in die PHP-Datei die zuvor den Eintrag gespeichert hat schreibe ich z.b.
Code:
$stmt = $db->query("SELECT * FROM tabelle");
// Aarray mit ID und Name
// Wie ausgeben das JS es "lesen" kann?

wie gebe ich das jetzt in den JS-Teil (siehe weiten oben) so etwas wie:
Code:
$.ajax({
success:function(data){return data;
}});
schreiben????

Wie gebe ich das Array von der PHP-Abfrage aus das JS es "lesen" kann?
 
Ok, ich lasse die DB Ausgabe jetzt ins Jason ausgeben:
Code:
// Jetzt für das Callback die Daten wieder aus der Datenbank holen:
if ($done == 1) {
   
    $stmt = $db->query("SELECT * FROM kategorien");
    $array = $statement->fetchAll( PDO::FETCH_ASSOC );
    $json = json_encode( $array );
   
    }

Und wo im JS muss ich das jetzt auslesen und weiterverarbeiten?

Hier das JS:
Code:
$("form").submit(function(event) {
   
    event.preventDefault();
   
   
    var form = $(this); 
    var action = form.attr("action"), // attr() kann enweder den aktuellen Inhalt des gennanten Attributs auslesen, oder setzt ein neuen Wert, falls ein zweiter Parameter gegeben ist
        method = form.attr("method"),
        data   = form.serialize(); // baut die Daten zu einem String nach dem Muster vorname=max&nachname=Müller&alter=42 ... zusammen
       
    // Der eigentliche AJAX Aufruf
    $.ajax({
        url : action,
        type : method,
        data : data
    }).done(function (data) {
        // Bei Erfolg
        alert("Erfolgreich:" + data);
    }).fail(function() {
        // Bei Fehler
        alert("Fehler!");
    }).always(function() {
        // Immer
        alert("Beendet!");
    });
});
 
Damit es in data bereit steht, musst Du das Ergebnis mit echo ausgeben.
Hast du dir die Doku von $.ajax durchgelesen (nicht komplett, aber die für success bzw. done)?
Code:
    $.ajax({
        url : action,
        type : method,
        data : data
    }).done(function (data) {
        // in data stehen die Daten als Array bereit und können für die Anzeige verwendet werden.
    }).fail(function() {
        // Bei Fehler
        alert("Fehler!");
    }).always(function() {
        // Immer
        alert("Beendet!");
    });
Es kommt mir so vor, als ob Du die selben Daten, die an den Server geschickt hast, anzeigen willst. Trifft das zu?
 
Zuletzt bearbeitet:
Dann könntest Du auch auf das Zurücklesen aus der DB verzichten und das Objekt gleich, vor oder nach dem Ajax-Aufruf anzeigen. Oder meinst Du, Du musst verifizieren, dass es richtig eingetragen wurde?
 
Hab mir die Doku durchgelesen, leider werde ich nicht wirklich schlau draus.

Ne, es müsste nicht unbedingt aus der DB zurückgelesen werden. Es würde reichen wenn es nach dem Aufruf angezeigt wird. Aber wie mache ich das?
 
Zuletzt bearbeitet von einem Moderator:
Welche Doku, die von $.ajax? Was ist dir denn unklar? Um auf die Daten, die vom Server zurück kommen, zuzugreifen, musst Du die Funktion bei .done verwenden. Das Array steht dort unter data zur Verfügung.
Damit das JSON automatisch dekodiert wird, musst Du den Parameter dataType auf "json" setzen.
Wenn Du auf das Zurücklesen verzichtest, entfällt das Ganze natürlich.
 

Neue Beiträge

Zurück