IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Formulaire - Select avec grande quantité d'option


Sujet :

HTML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut Formulaire - Select avec grande quantité d'option
    Bonjour,

    Je ne suis pas sur d'être au bon endroit pour poster, ma question traite de HTML mais également de PHP et MYSQL.

    J'ai une très gosse base de donnée, plus de 40'000 lignes dans une table.

    J'ai fait un formulaire de recherche qui comporte 4 select. Pour générer les options de mes select j'utilise PHP et une requête SQL -> DISTINCT et GROUP BY (afin de grouper les entrées similaires) qui va me rechercher les différentes options de ma recherche.

    Mon problème est que ma boucle while me génère environ 10'000 balises Options. Ce qui ralenti sensiblement ma page.

    J'ai fait divers tests, optimiser mes requêtes SQL etc, le problème de ralentissement vient bien de ces 10'000 ligne de balises option qui sont générées.

    Vous avez pas une idée afin de résoudre cela ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    perso, je me vois mal parcourir 10000 lignes d'options dans une liste déroulante...

    N'est-il pas possible de faire des requêtes intermédiaires permettant de diminuer sensiblement le nombre de choix ?
    Exemples :
    - sélection de l'initiale (A-B-C-...)
    - numéro commençant par...
    Avec au début : "Plus de .... options. Veuillez affiner votre recherche"

    Ou voir du côté de l'"Auto-complétion".

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut
    hello,

    merci pour la réponse.

    je m'attendais à ce que quelqu'un me répondre quelque chose de ce genre

    Effectivement 10000 d'options dans une liste déroulante peut paraitre totalement indigeste pour le visiteur, mais dans le contexte du site internet, j'aimerais garder cette liste déroulante tel quelle.

    J'avais effectivement aussi pensé à mettre une Auto-complétion ou un formulaire d'affinage de recherche en plusieurs étapes mais encore une fois, ça n'aura pas de sens dans le cas de ce site internet.

    Une autre idée pour accélérer le temps de chargement de la page ?

    merci d'avance pour votre aide.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Une solution (peut-être ?) :
    lancer la requete et l'affichage du select (et des 10000 options !) via Ajax (donc en asynchrone).
    Comme ça, l'affichage de la page se fait "normalement".
    Et le select s'affichera dès qu'il sera prêt...

Discussions similaires

  1. Formulaire select avec un retour selected
    Par kame84sennin dans le forum Langage
    Réponses: 3
    Dernier message: 12/04/2015, 16h07
  2. Performance Ajax avec Grande quantité d'information
    Par w3blogfr dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 27/01/2011, 12h43
  3. [javascript - formulaire] select avec grand nombre d'enregistrements
    Par mussara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2007, 14h20
  4. Créer une option à la volée ds un select avec IE
    Par katchi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/01/2007, 09h48
  5. modifier option select avec tableau
    Par calitom dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/11/2006, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo