Ich stosse jetzt dann aber sicher an meine Grenzen! Ich versuche mittels einer Auswahlliste ein entsprechendes div-Element je nach Auswahl zu verändern. Die Auswahl beinhaltet eine Liste von Städten und je nach Wahl der Stadt sollen die Locations der entsprechenden Stadt angezeigt werden. Mein Problem ist nun, dass mit der Helper-Methode $ajax->observerField die Action im Controller ignoriert wird. Falls das Problem unverständlich klingen sollte, wird es mit den entsprechenden Code-Zeilen schon klar was ich meine.
Controller events_controller.php:
- Code: Alles auswählen
function home() {
$this->Location->recursive = 0;
$this->set('cities', $this->Location->find('list', array('fields'=>array('Location.city'), 'order'=>array('Location.city'), 'group'=>array('Location.city'))));
}
function locations() {
}
View home.ctp:
- Code: Alles auswählen
<?php echo $javascript->link('scriptaculous-js-1.8.2/lib/prototype'); ?>
<?php echo $javascript->link('scriptaculous-js-1.8.2/src/scriptaculous'); ?>
<?php
echo $form->input('city', array('options'=>$cities, 'id'=>'cities'));
$options = array(
'url' => array('controller'=>'events', 'action'=>'locations'),
'update' => 'locations',
'frequency' => '2'
);
echo $ajax->observeField('cities', $options);
?>
<div id="locations" style="border: 1px solid black;">
</div>
View locations.ctp
- Code: Alles auswählen
<h1>Locations</h1>
Meiner Meinung nach sollte, wenn Auswahl eine Stadt ausgewählt (geändert) wird, im div mit der id locations '<h1>Locations</h1>' ausgegeben werden. Dies ist zwar noch nicht ganz das, was ich brauche aber es sollte doch so funktionieren. Nun wird zwar das div locations aktualisiert, aber die locations view wird nicht ausgegeben, dass heisst es wird eine leere Ausgabe. Selbst wenn ich die 'url' in den options weglasse passiert das gleiche, die methode locations wird demnach gar nie aufgerufen. Was mach ich denn falsch??