AJAX Adressbuch – Tutorial Teil 4

Nun ist es soweit, heute ist Weihnachten und das letzte Türchen hat sich geöffnet. Der letzte Teil meine Adressbuches steht noch aus und das möchte ich euch jetzt geben. Es ist der serverseitige Teil meine kleinen Weanwendung. Ich habe dazu eine mySQL-Datenbank angelegt und greife mit PHP auf den Datenbestand zu.

Ähnlich wie in Teil 2 und Teil 3 werde ich mehrere Datei benutzen um alles geordnet zu haben. Aber als erstes die Scripte zum Erzeugen der Datenbank und des Datenbestandes.

Also phpMyAdmin, das ultimative Datenbank-Tool, öffnen und die Codes einfügen. Dazu noch einen Datenbank-Benutzer und ein dazugehöriges Passwort anlegen. In meinem Fall heißt der Benutzer „demouser“ und sein Passwort ist „password„.

Als nächstes lege ich mir immer eine PHP-Datei an, die die Verbindung zur Datenbank regelt. Somit muss ich die Daten nicht in jedes Script hineinschreiben.

In der Variable $connect wird dann die Verbindung zum Datenbank-Server gespeichert und kann von nun an genutzt werden. Ich habe hier der Einfachheit halber auf Fehlermeldungen verzichtet.

Um mit PHP eine XML-Ausgabe zu erzeugen, reicht der obige Quellcode. Wichtig dabei ist das der richtige Header an den Browser geschickt wird.

Danach wird ein XML-Objekt mit dem Zeichensatz „utf-8“ generiert. Weiterhin wird ein Hauptknoten erzeugt und an das XML-Dokument dran gehangen. Zum Schluss alles an den Browser geschickt.

Soweit die Grundstruktur der XML-Ausgabe. Aber es fehlen ja noch die eigentlichen Inhalte aus der Datenbank.

Dazu binde ich als erstes die externe Datei zum Verbinden mit dem Datenbank-Server ein. Danach speichere ich das SQL-Statement in einer Variablen zwischen und hole von der Datenbank alle Ergebnisse dieser Anfrage.

In der darauffolgenden while-Schleife werden neue Knoten erzeugt und an den Root dran gehangen. Dabei setzt sich der Nachname-Knoten z.B. wie folgt zusammen. Ich erzeuge als erstes einen <nachname>-Tag und hänge dann mit der createTextNode()-Methode einen Text-Knoten dran. Den Text den ich da dran hänge, konvertiere ich zuvor noch mit der iconv()-Funktion in den richtigen Zeichensatz. Zum Schluss hänge ich dem <person>-Tag alle Unterknoten dran.

Soweit die Ausgabe zum Browser, bzw. zu JavaScript und meiner AJAX-Klasse. Was noch fehlt ist ein Script um Daten von JavaScript in Empfang zu nehmen und in die Datenbank einzufügen.

Auch hier ist der Quellcode sehr überschaubar. Als erstes binde ich wieder Das Script zum Erzeugen einer Verbindung zum Datenbank-Server ein. Dann speichere ich wieder in einer Variablen das SQL-Statement zwischen. Um ein korrektes Ergebnis zu bekommen, verwende ich hier die sprinf()-Funktion. Diese bietet mir eine kleiner Kontrolle über die übergebenen Werte. Zum Schluss schicke ich das Ganze nur noch an der Server und fertig ist das Einfügen neuer oder das Ändern von bestehenden Datensätzen. Ich verwende dazu immer ganz gern das REPLACE-Statement. Wenn dieses Statement keine ID besitzt wird ein neuer Datensatz erzeugt, ansonsten wird der Bestehende verändert.

So und das war es auch schon mit der serverseitigen Programmierung. Gerade mal 3 kleine Script brauche ich hier um der ganzen Webanwendung auch das Speichern auf dem Server bzw. das Einlesen von Daten hinzuzufügen.

Ich hoffe es hat euch gefallen 24 meist kleine Beträge aus meinen Arbeitsalltag zu lesen. Ich gebe zu, es war nicht immer leicht die Texte rechtzeitig fertig zu stellen und ich verspreche, wie immer und alle, nächstes Jahr rechtzeitig mit den Vorbereitungen zu beginnen.

2 Kommentare

  1. Hallo,
    mein Interesse für AJAX führte dazu, mich mit Ihrem Tutorial Ajax Adressbuch beschäftign.
    Ich habe große Probleme mit den Skripten, weil ich mich noch nicht so lange mit JS beschäftige und auch als Einzelkämpfer agiere. Bei der SQL-Tabelle wird, so meine ich einmal von Personen und in anderen Fällen von Mitarbeiter gesprochen. Evtl. sehe ich das auch falsch.
    Im Windows Explorer werden die Button untereinander platziert.
    Könnten Sie mir bitte ein paar Tips geben oder ein funktionierendes Skript zur verfügung stellen?

    Freundliche Grüße
    Franz Engelhardt

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.