Listbox multiple avec même contenu

jjDai Messages postés 291 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 13 mars 2015 - 14 mars 2013 à 21:59
jjDai Messages postés 291 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 13 mars 2015 - 15 mars 2013 à 19:44
Bonjour
-------------------
j'ai une table qui affiche X enregistrements.
Sur chaque ligne je met une listbox dans une des colonnes pour permettre la sélection d'une valeur. La liste de choix est donc le même sur toutes les lignes de la table.
Comme cette liste est assez importante que que le nombre de ligne peut aussi être important, charger la même liste n'est pas très optimisé et génère un temps de chargement inutile.
Je souhaiterais donc charger la liste une seule fois et pouvoir l'utiliser dans autant de listbox que je souhaite.
J'ai trouvé une solution avec la balise "datalist" qui permet de créer une liste d'option. et un champ input avec l'attribut "list" auquel on affecte le nom du "datalist".
deux problèmes avec cette solution:
- ce sont des valeurs simples, cela ne gère pas des tableaux associatifs, mais j'ai réussi a contourné le problème en ajoutant un attribut personnalisé dans lequel je met l'identifiant" a récupérer.
-Plus embetant ça ne fonctionne qu'avec Firefox, IE ne reconnait pas la balise "DATALIST"

Ma question:
Y aurait-il une solution, pour utiliser la même liste d'options dans plusieurs listbox du même formulaire, sans toute-fois la charger pour chacune d'elle.

JJDai

4 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
15 mars 2013 à 09:35
Salut,

je suis pas sûr de comprendre ce que tu entends par "charger". Toutefois une solution à tenter est de mettre ton SELECT/OPTION dans une div invisible, et avec une fonction JS de récupérer son contenu (innerHTML) et de le copier dans chaque ligne.

Perso j'ai jamais eu de problème de latence sur l'inscription d'input en masse, donc pas sûr que ma proposition soit réellement utile.
0
jjDai Messages postés 291 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 13 mars 2015
15 mars 2013 à 18:45
Bonjour merci pour la réponse, mais cela ne me convient pas pleinement.
Pour être plus clair:
supposons une liste de 50 personnes.
dans cette liste j'ai le nom le prénom et la civilité.
Pour la civilité je mets une liste box avec comme options "mademoiselle, madame, monsieur".
Je vais donc avoir 50 listbox avec la même liste.
plutôt que d'envoyer 50 fois la liste des options (mademoiselle,madame,monsieur) je cherche une solution pour ne l'envoyer qu'une fois dans ma page html.
Sachant que dans ma liste j'ai en réalité plus de 2000 options.
Mais a priori a part la solution que tu propose il n'y a pas d'autre alternative qui fonctionne aussi sous IE.
Comme c'est pour utiliser dans une interface d'administration, je vais opter pour la balise "datalist" avec un "input" dont l'attribut "list" pointe sur la "datalist" qui fait exactement ce que je veux.
Après vérification cette balise est reconnu a partir de IE-10, donc les utilisateurs administrateurs devront utiliser firefox ou IE-10.
Je met un lien sur un exemple de alsacreation:
http://www.alsacreations.com/article/lire/1334-html5-element-datalist.html

Merci, JJDai
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
15 mars 2013 à 19:27
Attention, IE10 n'est dispo qu'à partir de Windows 7 (depuis peu).
Vois avec l'administrateur du parc de ton entreprise si l'upgrade est possible.

Sinon, pour mes DDL trop importantes j'utilise des "AjaxBox". Le principe est de faire des micro-requêtes ajax vers le serveur selon les premiers caractères saisis par l'utilisateur. Ces requêtes renvoient les réponses les plus pertinentes (dans un nombre limité) au fur et à mesure que l'utilisateurs saisit des caractères. Cela marche particulièrement bien dans le cas d'une DDL contenant des prénoms+noms (base de données de plusieurs milliers de ressources humaines dans mon cas).
0
jjDai Messages postés 291 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 13 mars 2015
15 mars 2013 à 19:44
Bonsoir
J'avais penser a la solution Ajax, mais je ne voulais pas non plus me lancer dans développement trop important pour ce que je voulais faire.
C'est pour utiliser dans l'admin d'un module que je développe pour Xoops.
Il y aura a tout casser une dizaine de personnes a faire des misses à jour dans le back-office et pour le cas en question il y aura des miss à jour fréquentes au debut qui se feront de plus en plus rare au fur et a mesure que la base sera alimentée.
Par ailleurs ce seront des adhérents d'une association donc ça devrait pas poser trop de problème.
Je vais m'en tenir a mon datalist pour l'heure.

Merci d'avoir pris le temps de me répondre
JJDai
0
Rejoignez-nous