Envoyé par
kamnouz
En faite je desire faire un select multiple et balancer les valeurs dans un autre select multiple.
Mets-toi un instant à la place de l'utilisateur et demande-toi si tu aimerais dérouler une liste de 800 000 lignes pour trouver le ou les quelques éléments que tu veux sélectionner !
Mais qu'entend tu par "un champ texte avec auto-completion " ?
Un champ de formulaire dans lequel l'utilisateur commence à saisir du texte et qui affiche les possibilités en affinant la liste au fur et à mesure de la saisie.
Par exemple, pour un tel champ permettant de sélectionner un nom de personne, l'utilisateur commence à saisir 'D' et le système fait une requête sur la table des personnes avec le nom commençant par D. L'utilisateur continue sa saisie 'DU' et le système commence à restreindre en proposant par exemple 'DUPOND, DUPONT, DURAN, DURAND'. L'utilisateur continue en saisissant 'DUR' et le système ne propose plus que 'DURAN' et 'DURAND'...
Il existe ce genre d'outil dans les bibliothèques Javascript telles que JQuery. On peut paramétrer le nombre de caractères saisis nécessaires pour commencer à requêter la table. Avec 800 000 lignes, il vaut mieux avoir au moins les 3 premiers caractères pour restreindre le nombre de possibilités à afficher et donc accélérer l'affichage.
Mais tu dis que tu désires "faire un select multiple et balancer les valeurs dans un autre select multiple". Cela veut-il dire que, d'après ta requête, l'utilisateur va d'abord sélectionner les groupes puis les clients des groupes sélectionnés ?
Si oui, alors fais deux requêtes, une pour chaque liste, en te basant pour la seconde sur le choix opéré par l'utilisateur :
WHERE code_groupe IN (...)
Partager