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

JavaScript Discussion :

Liste interactive


Sujet :

JavaScript

  1. #1
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    Par défaut Liste interactive
    Je voudrais mettre en place un champ texte avec une liste à coté ou la liste est trié en fonction de ce qui est saisi dans le champ text (à chaque onkeyup). Genre je tape a dans mon champ texte la liste n'a en option que les valeurs commencant par a, et ainsi de suite.

    J'utilise smarty en template et n'inclus pas de php dans ma page.

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 66
    Points : 85
    Points
    85
    Par défaut
    Voici une solution :

    Il te faut d'abord la liste en double (la premiere liste est cachée, et ne sert qu'a retrouver la liste complète) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <select name="maListe" style="display:none">
    <option value="1">ASP</option>
    <option value="2">Javascript</option>
    <option value="3">PHP</option>
    <option value="4">XML<option>
    </select>
    <select name="maListe2">
    <option value="1">ASP</option>
    <option value="2">Javascript</option>
    <option value="3">PHP</option>
    <option value="4">XML<option>
    </select>
    Le onkeyup de ton champ texte appellera cette fonction, en lui passant sa valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function majListe(debut){
            /* la liste visible est vidée */
    	document.f.maListe2.options.length=0;
    	var listeComplete=document.f.maListe;
            /* parcours de la liste complète */
    	for(var i=0,nb=0;i<listeComplete.options.length;i++){
                    /* test du début de chaque libellé de la liste */
    		if(listeComplete.options[i].text.indexOf(debut)==0){
                            /* ajout de l'option à la liste visible */
    			var newOption = new Option(listeComplete[i].text, listeComplete[i].value, false, false);
    			document.f.maListe2.options[nb] = newOption;
    			nb++;
    		}
    	}
    }
    necronick

  3. #3
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    Par défaut
    Ca marche Merci a toi !!! t'es l'meilleur

  4. #4
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    Par défaut
    Autre chose cependant, comment faire pour que la casse ne soit pas respecté ? Les éléments de ma liste commence par des majuscule (ou des chiffres) et si je met une minuscule ca fonctionne pas.

    je rectifie : la fonction ToUpperCase() peut prendre en paramètre l'endroit du'un caractère que l'on veut modifier ou bien il prend une chaine entière obligatoirement?

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 66
    Points : 85
    Points
    85
    Par défaut
    il suffit de convertir les deux valeurs (celle de ton champ texte et chaque libellé de la liste) en minuscules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(listeComplete.options[i].text.toLowerCase().indexOf(debut.toLowerCase())==0){

    Par contre, lorsqu'il y a des chiffres, qu'est-ce que c'est censé faire ?
    necronick

  6. #6
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    Par défaut
    Rien a faire pour les chiffres c amarche impec


    Merci Necronick t'es vraiment un boss je note ton pseudo

    j'avoue avoir essayer de trouver une solution par moi même mais j'apprends sur le tas le HTML (pas compliqué) le PHP, le javascript le SQL et Smarty, depuis environ 1mois et demi et je dois finir la version alpha d'un projet proffessionel pour la boite ou je suis en apprentissage... ben c ardu
    Mais enormément plaisant au demeurant

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 66
    Points : 85
    Points
    85
    Par défaut
    Bah, si c'avait pas été moi, un des nombreux autres membres du forum t'aurait donné une solution
    necronick

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/12/2006, 11h36
  2. [C# VS 2005 Express] Form/List/ListBox/RichTextBox interactions
    Par SDragon dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/07/2006, 19h06
  3. liste graphique + drag and drop et interaction elements
    Par TabrisLeFol dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 21/02/2006, 22h15
  4. [Interface Homme Machine] Liste des interactions possibles
    Par dymezac dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 27/01/2006, 11h45
  5. liste deroulante interactive
    Par duktil dans le forum Autres langages pour le Web
    Réponses: 2
    Dernier message: 16/03/2005, 11h11

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