J'ai implémenté la fonctionnalité d'achèvement automatique à l'aide de la fonction Ajax.autocompleter du framework JavaScript Scriptaculous. Le code fonctionne, mais la liste entière est remplie au lieu de remplir uniquement les entrées correspondant à la lettre que j'ai spécifiée. Ceci est mon code:La liste complète est remplie dans la fonction Ajax.autocompleter
Ceci est la fonction js pour obtenir les entrées suggérées automatiquement.
new Ajax.Autocompleter("autocomplete", "autocomplete_choices",
"http://localhost/FormBuilder/forms/autoComplete",{});
Ceci est la zone de saisie automatique et les entrées où les entrées sont remplies.
<input type="text" id="autocomplete" name="autocomplete_parameter"/>
<div id="autocomplete_choices" class="autocomplete"></div>
Et ceci est l'action autoComplete dans le contrôleur de formes où obtenir la liste des utilisateurs correspondant à la lettre dactylographiée.
function autoComplete()
{
$this->set('users',$this->User->find('all',array('fields'=>array('User.id','User.name'),
'conditions'=>array('User.name LIKE' => $this->data['User']['name'].'%')
)
)
);
$this->layout = "ajax";
}
Mais supposons que si je tape la lettre « p », je reçois la liste de l'ensemble de l'utilisateur au lieu d'afficher ceux commençant par la lettre « p ». Pourquoi ai-je ce problème? Où ai-je mal tourné?