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