Wer mit dem großartigen PHP Framework CakePHP arbeitet, kommt schnell in den Genuss des dort integrierten AJAX Helpers.
Hierbei können einzelne Div Inhalte einer Seite relativ problemlos mit aktualisierten Daten ausgetauscht werden. Im Hintergrund wird hier von CakePHP auf das Prototype Javascript Framework aufgesetzt (konkret: Ajax.Updater).
Im Grunde funktioniert das im Beispiel eines Formulars folgendermaßen:
[source:php]
echo $ajax->form(’sendMessage/‘.$details[‚Nachricht‘][‚id‘],
‚post‘,
array(‚update‘ => ‚message-reply‘.$details[‚Nachricht‘][‚id‘],
‚before’=>’toggleViewOfDiv(\’message-reply‘.$details[‚Nachricht‘][‚id‘].’\‘)‘,
‚complete‘ => ’new Ajax.Updater(\’all_messages_ajax\‘, \’/news/messagebox\‘,
{ evalScripts : true });‘));
[/source]
Wenn es sich nicht um ein Formular handelt, kann auch im $ajax->link im Optionsarray manuell der Ajax.Updater als Argument für die Option „complete“ aufgerufen werden:
[source:php]
echo $ajax->link(__(‚Lesen‘, true),
‚getMessageBody/‘.$news[‚Nachricht‘][‚id‘],
array(‚complete’=>’new Ajax.Updater(\’all_messages_ajax\‘, \’/news/messagebox\‘,
{ evalScripts : true });‘,
‚update’=>’message-‚.$news[‚News‘][‚id‘]));
[/source]
Da bei einigen Leuten die nach dem Submit gerenderte Seite nicht mehr auf die durch $ajax->link generierten Links reagiert, muss als Option für den Ajax.Updater „evalScripts: true“ übergeben werden.