Ajax Request

Hier geht es detailiert darum wie du einen Ajax-Request von der Webseite aus gegen den Server vorbereitest.

Minimal Ajax-Request

Jybrid bereitet mit Hilfe von PHP spätere mögliche Ajax-Requests vor. Dies geschieht beim initial-page-load. Die einfachste Bauweise um einen Ajax-Request vorzubereiten ist die folgende Zeile:

\Jybrid\Factory::register('anCoolUniqueName');

Dieser Request registriert sich automatisch im initialen Javascript. In deinem Html-Code kannst du diese registrierte funktion als Button oder ähnliches verwenden.

<a href="#" onclick="jybrid.Exe('anCoolUniqueName');">click me</a>

Sobald du den obigen Button geklickt hast wird der Ajax-Request gegen die selbe Url geschickt, die in der Browser Adresszeile angezeigt wird(wir haben keine andere Url eingestellt)

// Ajax Request or regular Request switch
if (Factory::isJybridRequest())
{
    $objResponse = Factory::getResponseInstance();

    switch (Factory::getInput()->getRequestName())
    {
        case 'anCoolUniqueName':
            $objResponse->alert('Ajax Request received with the reserved "getRequestName()" var "anCoolUniqueName"');
        break;
        default:
            $objResponse->alert('Ajax Request received.');
    }
    // close the response and send back to the browser
    Factory::processRequest();
}

Wie du siehst ist der "anCoolUniqueName" gleichzeitig ein ein automatischer Parameter den du zum Verarbeiten der Anfrage auf dem Server verwenden kannst

Das ganze Beispiel kannst du hier herunter laden:

Minimal Button Ajax-Request

Im ersten Beispiel wurde in der Ajax-Request-Registrierung der frei wählbare Bezeichner anCoolUniqueName registriert und im a-Tag der selbe Bezeichner erneut von Hand eingetragen. Für ein Beispiel mag das sicherlich in Ordnung sein, für einfachere Anwendungen auch. Nur, solltest du den Bezeichner bei der Registrierung von Hand ändern, darfst du nicht vergessen jybrid.Exe('myNewCoolName');diesen Ausdruck auch zu ändern.

Das erste Beispiel bleibt bis auf die folgenden Änderungen genauso bestehen:

$myRequestObject = \Jybrid\Factory::register('anCoolUniqueName');

und im html-code:

<a href="#" onclick="<?php echo $myRequestObject ?>">click me</a>

Resultat ist, dass du anCoolUniqueName nur ein einziges mal zu schreiben hast. Im Button wird mit echo $myRequestObject ist eine "stringify" (__toString()) Methode angeklemmt, die dir die ganze Arbeit mit der Ajax Configuration von einem Click-Button erledigt.

Das ganze Beispiel kannst du hier herunter laden:

Get Ajax Request-Object

Falls die Registrierung des Ajax-Requests weit weit weg in einer anderen Datei ist und du die $myRequestObject nicht durch das ganze System mitschleifen magst kannst du jederzeit auf ein bereits registrierte Request-Object zurück greifen.

\Jybrid\Factory::getRequestObject('anCoolUniqueName');

und im html-code:

<a href="#" onclick="<?php echo \Jybrid\Factory::getRequestObject('anCoolUniqueName') ?>">click me</a>

sollte unter anCoolUniqueName kein Request-Object hinterlegt sein, wird hier auch keine jybrid.Exe('anCoolUniqueName'); ausgegeben.

$myFoundRequestObject = \Jybrid\Factory::getRequestObject('anCoolUniqueName');

Fazit

Damit haben wir auf ganz einfach Weise eine komplette automatischeClickRoute mit Ajax erstellt. Kein Javascript-Variablen Puzzle. Vielleicht noch einmal kurz zusammen gefasst.

  • Jybrid initialisieren
  • Ajax-Request mit php registrieren
  • Echo im Html-Code vom registrierten Ajax-Request

So einfach kann ajax sein ;-)