De:Tutorien:xajax in 10 Minuten lernen






De:Tutorien:xajax in 10 Minuten lernen

Deutsche Übersetzung | Startseite
xajax Version: 0.2 | Original

[edit] xajax in einem PHP-Script verwenden

xajax ist darauf ausgelegt, extrem einfach sowohl in existierende Internet-Anwendungen als auch in neue Projekte implementiert werden zu können. Sie können die Fähigkeiten von xajax in sieben einfachen Schritten zu nahezu jedem PHP-Script hinzufügen:

  1. Fügen Sie die xajax-Klassenbibliothek hinzu:
    require_once("xajax_core/xajax.inc.php");
    
  2. Erstellen Sie das xajax-Objekt:
    $xajax = new xajax();
    
  3. Registrieren Sie die Namen der PHP-Funktionen, die über xajax aufgerufen werden können sollen:
    $xajax->registerFunction("myFunction");
    
  4. Schreiben Sie die registrierten PHP-Funktionen und benutzen Sie das xajaxResponse-Objekt um XML-Befehle zurückzugeben:
    function myFunction($arg)
    {
        // Führen Sie hier beliebige Funktionen in Abhängigkeit von $arg aus
        // (z. B. Abfrage neuer Daten aus einer Datenbank) und weisen Sie die
        // Rückgabewerte einer Variablen wie $newContent zu
        $newContent "Wert von \$arg: " $arg;
        
        // Erstellen Sie das xajax-Antwort-Objekt
        $objResponse = new xajaxResponse();
        
        // Fügen Sie dem Antwort-Objekt den Befehl hinzu, dem innerHTML-Attribut
        // des Elements mit der id "SomeElementId" den neuen Inhalt zuzuweisen
        $objResponse->assign("SomeElementId""innerHTML"$newContent);
        
        // Geben Sie das Antwort-Objekt zurück
        return $objResponse;
    }
    
  5. Lassen Sie xajax etwaige Anfragen bearbeiten, bevor Ihr Script Ausgaben an den Browser sendet:
    $xajax->processRequest();
    
  6. Lassen Sie den notwendigen JavaScript-Code zwischen den Tags <head> und </head> der Seite eintragen:
    <?php $xajax->printJavascript(); ?>
  7. Rufen Sie die definierte Funktion über ein JavaScript-Ereignis oder eine -Funktion in Ihrer Anwendung auf:
    <div id="SomeElementId"></div>
    <button onclick="xajax_myFunction('Es funktioniert!');">
    

Das war's. Nahezu alles Weitere wird von xajax erledigt. Ihre größte Aufgabe ist das Schreiben der PHP-Funktionen und die Rückgabe von xajax XML Antworten -- was durch die xajaxResponse-Klasse sehr einfach gemacht wird.

[edit] Wie aktualisiere ich meinen Inhalt asynchron?

Das vielleicht einzigartige Feature von xajax ist die xajaxResponse-Klasse. Bei der Verwendung anderer AJAX-Biblotheken müssen Sie eigene Callback-Handler in JavaScript schreiben, um die Rückgabedaten einer asynchronen Abfrage zu verarbeiten und den Inhalt zu aktualisieren. xajax erlaubt es Ihnen dagegen, den Inhalt unkompliziert über PHP zu steuern. Mit der xajaxResponse-Klasse können Sie XML-Anweisungen erstellen, die von PHP-Funktion an Ihre Anwendung zurückgegeben werden. Das XML wird von der xajax-Klasse geparst, und die enthaltenen Anweisungen teilen xajax mit, wie Inhalt und Status Ihrer Anwendung aktualisiert werden sollen. Die xajaxResponse-Klasse bietet derzeit die folgenden Befehle an: Assign zum Setzen des angegebene Attributs eines Seitenelements; Append zum Anhängen von Daten an den Inhalt des angegebenen Attributs eines Seitenelements; Prepend zum Voranstellen von Daten an den Inhalt des angegebenen Attributs eines Seitenelements; Replace zum Ersetzen Suchen und Ersetzen von Daten im angegebenen Attribut eines Seitenelements; Script zum Ausführen des übergebenen JavaScript-Codes; und Alert zur Anzeige einer Alert-Box mit dem übergebenen Nachrichtentext.

Eine einzelne XML-Antwort kann mehrere Befehle enthalten, die in der Reihenfolge ausgeführt werden, in der sie der xajaxResponse-Instanz hinzugefügt wurden. Nehmen wir als Beispiel an, ein Nutzer klickt auf eine Schaltfläche in Ihrer Anwendung: Das onlick-Ereignis ruft die JavaScript-Wrapper-Funktion einer PHP-Funktion auf. Diese Wrapper-Funktion sendet eine asynchrone Anfrage per XMLHttpRequest an den Server, wo xajax die zugehörige PHP-Funktion ausführt. Die PHP-Funktion führt eine Datenbankabfrage aus und manipuliert oder serialisiert Daten. Sie verwenden die xajaxResponse-Klasse, um eine mehrere Befehle enthaltende xajax XML-Antwort zu erstellen die zurückgesendet und von der xajax-Klasse ausgeführt wird:

$objResponse = new xajaxResponse();
$objResponse->assign("myInput1","value",$DataFromDatabase);
$objResponse->assign("myInput1","style.color","red");
$objResponse->append("myDiv1","innerHTML",$DataFromDatabase2);
$objResponse->prepend("myDiv2","innerHTML",$DataFromDatabase3);
$objResponse->replace("myDiv3","innerHTML","xajax","<strong>xajax</strong>");
$objResponse->script("var x = prompt(\"Enter Your Name\");");
return $objResponse;

Die xajax-Klasse würde die XML-Antwort parsen und Folgendes durchführen:

  • Dem value-Attribut des Elements mit der id myInput1 würden die Daten in $DataFromDatabase zugewiesen.
  • Die Farbe des Texts im Element mit der id myInput1 würde in rot geändert.
  • Die Daten in $DataFromDatabase2 würden an den HTML-Inhalt (innerHTML) des Element mit der id myDiv1 angehängt.
  • Die Daten in $DataFromDatabase3 würden dem HTML-Inhalt (innerHTML) des Elements mit der id myDiv2 vorangestellt.
  • Jeder Fund von "xajax" im HTML-Inhalt (innerHTML) des Elements mit der id myDiv3 würde durch "<strong>xajax</strong>" ersetzt; alle Vorkommen des Wortes "xajax" würden also fett erscheinen.
  • Ein Eingabedialog würde angezeigt, der den Nutzer nach seinem Namen fragt. Der vom Dialog zurückgegebene Wert würde einer JavaScript-Variable names x zugewiesen.

All dies ist in der serverseitigen PHP-Funktion implementiert, die eine xajax XML-Antwort generiert und zurückgibt.

[edit] Aber Moment, da ist mehr!

Formulare mit xajax verarbeiten