Das jQuery-Script ist ziemlich simpel:
- Code: Alles auswählen
- $("#SearchQuery").autocomplete({
source: "/Places/autocomplete",
minLength: 1
});
Die angeforderte action sieht wie folgt aus:
- Code: Alles auswählen
function autocomplete() {
$data = $this->Place->find('all', array('conditions'=>array('Place.city LIKE' => $this->params['url']['term'].'%'),'fields'=>array('city')));
$this->set('suggestions', $data);
}
Und auch einen view autocomplete.ctp habe ich angelegt:
- Code: Alles auswählen
- <?php
if(!empty($suggestions)) {
$data = array();
foreach ($suggestions as $item){
$data[] = $item['city'];
}
echo json_encode($data);
}
else echo 'Keine Ergebnisse';
?>
Allerdings wird unter dem Suchfeld damit keine Liste mit Vorschlägen angezeigt. Wie spielt denn die action die Ergebnisse an den View zurück? Mir ist da irgendwie das Zusammenspiel von Controller, default.ctp und autocomplete.ctp noch nicht ganz klar… Bin also für jede Hilfe dankbar!
(Nutze CakePHP 2.0b und jQuery 1.6.2)