Ajax mit xajax – Teil 2.2

Schauen wir uns direkt die veränderte Hülle aus Teil 2.1 an.

<?php

include("xajax.inc.php");

$xajax = new xajax();

function helloWorld() {
    // (1) xajaxRespone Objekt erzeugen
    $response = new xajaxResponse();
    // (2) Rueckgabe definieren.
    $response->addAssign("inhalt", "innerHTML", "Hello World!");
    // (2) XML-Code zurueckgeben
    return $response->getXML();
}

$xajax->registerFunction("helloWorld");

$xajax->processRequests();

?>
<html>
<head>
    <title>ajax mit xajax</title>
    <? $xajax->printJavascript(); ?>
</head>
<body>
    <div id="inhalt">
        <a href="#" onClick="xajax_helloWorld()">Hello!</a>
    </div>
</body>
</html>

Das Beispiel ist ähnlich wie das Erste aufgebaut, deshalb schauen wir uns diesmal nur an was sich innerhalb der helloWorld()-PHP-Funktion tut. Zunächst erzeugen wir in (1) ein xajaxResponse-Objekt. Dies wird wiederum alles Nötige für die Rückgabe von uns abschirmen und wir brauchen uns nur darum zu kümmern, was zurückgegeben werden soll und was sich tun soll nach dem Aufruf, das "Wie" überlassen wir Xajax.

Auf unserem Xajax-Objekt benutzen wir die Methode addAssign(). Damit sagen wir, dass wir von dem HTML-Element mit der ID "inhalt" (siehe <div id="inhalt">…</div>) den inneren HTML-Code (innerHTML) durch etwas anderes (Hello World!) ersetzen möchten. Anschließend geben wir mit der Methode getXML() den nötigen XML-Code zurück. Den wird Xajax auf der Client-Seite annehmen und die entsprechenden Änderungen ausführen.

Was passiert also im Beispiel? Im div-Element mit der ID "inhalt" ist ein Link mit dem Titel "Hello", der beim Aufruf über die oben genannte Kette ersetzt wird durch den Text "Hello World!"

Seit Xajax 0.2 ist eine Rückgabe mit der getXML-Methode return $response->getXML(); nicht mehr nötig und es reicht direkt das Response-Objekt zurückzugeben return $response;

http%3A%2F%2Fwww.anti-hype.de%2F2006%2F04%2F27%2Fajax-mit-xajax-teil-22& layout=standard&show-faces=true&width=500& action=like&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:500px; height:60px">

Kommentare (8)

chidJune 1st, 2006 at 13:29

Hallo Leute,
bitte “innerHtml” in -> “innerHTML” ändern!!!!!!!!!!!!!
Habe 4 Tage dran gesessen um das Beispiel zum Laufen zu kriegen.
(Habe gedacht es liegt an Joomla(CMS))

AntiHypeJune 1st, 2006 at 14:36

Danke für den Hinweis. Ich habe den Artikel editiert. Und sorry, dass du nun 4 Tage unnötige Arbeit hattest ;)

MoritzAugust 15th, 2007 at 18:51

Für die aktuelle Version muss der PHP-Teil wie folgt lauten:

assign(“inhalt”, “innerHTML”, “omg”);
// (2) XML-Code zurueckgeben
return $response;
}

$xajax->registerFunction(“helloWorld”);

$xajax->processRequest();

?>

Ansonsten ein superverständlich geschriebenes Tutorial, danke dafür! :)
lg

MoritzAugust 15th, 2007 at 18:54

Huch, die ersten paar Zeilen hats gar nicht angezeigt… Hier nochmal bei nopaste: http://rafb.net/p/OOlTHg61.html
lg

CrAzYSeptember 6th, 2007 at 16:05

so sollte es gehn:

$response = new xajaxResponse();
$response->assign(“inhalt”, “innerHTML”, “Hallo Welt!”);
return $response;

MonteSeptember 9th, 2007 at 20:24

noch einen kleinen Fehler entdeckt:

$xajax->processRequests();

es sollte heißen:
$xajax->processRequest();

Gibt keine Methode namens processRequests()

Gruß Monte

q_noDecember 2nd, 2007 at 22:21

@Monte,

so wie es da steht ist es korrekt.Das Beispielt bezieht sich auf xajax 0.2x. Der Befehl wurde allerdings seit 0.5beta1 umbenannt in ->processRequest() um es eindeutiger zu machen ;)

Ajax mit xajax - Teil 2.2 « Der Anti-HypeSeptember 10th, 2008 at 22:34

[...] Ajax mit Xajax – Teil 2.2 Posted by AntiHype Filed in Ajax, Hype, Internet, PHP, Web 2.0 [...]

Kommentieren?

Dein Kommentar