Archiv

Archiv für die Kategorie ‘CakePHP’

LightWindow und AJAX

8. September 2009 2b Keine Kommentare

Heute bin ich glücklich, Euch mal wieder einen etwas technischeren Artikel präsentieren zu können.

Es geht um das Zusammenspiel zwischen dem JavaScript-basierten LightWindow (dient grob gesagt dazu, um ein Fenster im Fenster animiert anzuzeigen und zu steuern – Einsatz z.B. für Großansichten von Bildern) und AJAX-Aufrufen im Allgemeinen.

LightWindow im Einsatz

LightWindow im Einsatz beim CakePlanner

In meinem Fall habe ich eine CakePHP-Applikation, die auf Anforderung gewissen Seitenteile per AJAX austauscht. Sowohl auf der Startseite, als auch auf dem nachgeladenen Bereich sind Links verbaut, die die jeweils verlinkten Inhalte in einem LightWindow darstellen sollen.
Auf der Startseite funktionierte das beim Testen auch prächtig. Lud ich jedoch einen Seitenteil nach, wurden die LightWindow-Links unschön “ganz normal” im Browser geöffnet, anstatt im LightWindow.

Ursache: Beim Nachladen verliert LightWindow den Bezug zu den vorhandenen DOM-Objekten (z.B. den Links) und kann dann nicht mehr wie gewünscht auf ein onClick-Event reagieren.

Lösung: Nach dem Nachladen muss die jeweilige LightWindow-Instanz re-initialisiert werden.

Bei mir sah das dann so aus:


<script type="text/javascript">
myLightWindow.initialize();
</script>

Dieses Code-Snippet ziert nun den jeweiligen, nachgeladenen Bereich und siehe da: die Links wurden wieder sauber im LightWindow geöffnet.

[1] LightWindow: http://www.stickmanlabs.com/lightwindow/
[2] CakePHP: http://www.cakephp.org/
[3] CakePlanner: http://sourceforge.net/projects/cakeplanner/

[CakePHP] Leerer Eintrag in Select-Boxen

16. Juli 2009 2b Keine Kommentare

Alt bekanntes Thema: beim Aufruf eines HTML-Formulars soll in einer Select-Box ein Text angezeigt werden, der dazu auffordert, doch bitte einen Wert auszuwählen.

Auch in CakePHP ist das natürlich über den Form-Helper möglich. Eher zufällig stieß ich gerade auf das input-Parameter empty, als ich gerade auf der Suche nach einer Lösung für mein Problem war, dass meine Select-Box komplett leer ist – aber das ist ein anderes Thema.

Wollt Ihr also einer Select-Box ein “Bitte auswählen” spendieren, sieht das zusammengefasst so aus:

echo $form->input('category_id', array('type' => 'select', 'empty' => 'Bitte auswählen'));

[CakePHP] Deutscher Kuchen

24. März 2009 2b Keine Kommentare

Mein Abend ist gerettet…das CakeFest kommt nach Deutschland! Yes! Auch, wenn es in Berlin ist.

Wer ist dabei?

KategorienCakePHP, IT::lastig Tags: ,