Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour, j'utilise ZendX_JQuery_Form_Element_AutoComplete() et il fonctionne bien.
Voici le code :
// création de la liste des utilisateurs $table_user = new Model_DbTable_User(); $users = $table_user->fetchAll(); foreach($users as $u): $tab[]=$u->user_username; <--------------------------A AMÉLIORER endforeach; // création de l'objet auto completion $user = new ZendX_JQuery_Form_Element_AutoComplete( 'user_username', array( 'Label' => 'Current User *', 'required'=>true, 'filters'=>array('StripTags'), 'validators'=>array( array( 'validator'=>'StringLength', 'options'=>array('min'=>'3'), 'breakChainOnFailure'=>true ) ) ) ); $user->setJQueryParams(array('source' => $tab)); // Vérification que le username n'est pas déja dans la base $usernameDoesntExist = new Zend_Validate_Db_RecordExists('user', 'user_username'); $user->addValidator($usernameDoesntExist);
Je souhaite améliorer sont utilisation.
En effet l'auto complétion est basé sur le username, j'aimerais faire apparaître le nom et le prénom en plus :
foreach($users as $u): $tab[]=$u->user_username . ' ' . $u->user_firstName . ' ' . $u->user_lastName; endforeach;
C'est fait. Sauf que maintenant je ne peux pas comparer la chaine ci-dessus avec le username dans la base ( en utilisant Zend_Validate_Db_RecordExists() )
Alors je peux extraire le username en me basant sur les espaces.
Mais je ne sais pas accéder à la valeur que l'utilisateur à rentré.
Et $user->getValue() me renvoi une valeur vide.
Avez-vous une solution ?
Merci
PS : question bonus : savez-vous limiter la longueur de la liste? Car elle peut prendre des centaines de lignes. La doc n'en parle pas. Et sur JQueryUI il y a juste un attribut de longueur minimal.
Dernière modification par maryooman (15-07-2010 12:02:21)
Hors ligne