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

PHP & Base de données Discussion :

menu déroulant dynamique


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 81
    Points
    81
    Par défaut menu déroulant dynamique
    Bonjour,

    Je voudrais mettre en place un formulaire dynamique sur mon site.
    Je m'explique:
    Je voudrais par exemple avoir un premier menu deroulant avec les régions françaises.

    Une fois la region selectionnée, je voudrais que le deuxième menu ne propose que les departements de cette région...puis les villes de ce dep...etc

    Je voudrais donc comprendre le principe de ce fonctionnement? Si quelqu'un avait un exemple de code ...je serais tout à fait preneur .

    Merci d'avance !

  2. #2
    Membre régulier
    Avatar de SOAD08
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 101
    Points : 108
    Points
    108
    Par défaut
    Tu as plusieurs solutions pour faire ça :

    -Soit tu stocke tous tes departements dans des tableaux regions et toute les données seront présente dans ta page, tu n'auras qu'a afficher

    -Sinon tu utilise Ajax et plus particulierement XMLHttpRequest, et lors du choix d'une region, tu recupere les departement dans une page php.
    www.cppreference.com ==> A lire pour vos problèmes touchant à la STL
    www.php.net ==> A lire avant de demander le fonctionnement d'une fonction PHP

    Alliance developpez Muzgo

  3. #3
    Membre régulier Avatar de pioule
    Profil pro
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Points : 97
    Points
    97
    Par défaut
    Ou encore en javascript, avec une fonction utilisant le innerHTML pour modifier dynamiquement le contenu de tes listes... il faut juste prégénérer tes tableaux avant

    Mais l'une ou l'autre de chaque méthode implique que tu aies dans une base de données l'ensemble des régions, puis des départements, des villes, etc...

    Un exemple que l'on a réalisé au boulot : générer une liste de communes à partir d'une liste de code postaux :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <SCRIPT LANGUAGE="JavaScript">
    var tabcp = new Array();
     
    tabcp['62000'] = ["DAINVILLE","ARRAS"] ;
    tabcp['62100'] = ["CALAIS"] ;
    tabcp['62110'] = ["HENIN BEAUMONT"] ;
    .
    .
    .
    tabcp['62960'] = ["BOMY","BEAUMETZ LES AIRE","LAIRES","FLECHIN","FEBVIN PALFART","WESTREHEM","ERNY SAINT JULIEN","LIGNY LES AIRE"] ;
    tabcp['62970'] = ["COURCELLES LES LENS"] ;
    tabcp['62980'] = ["VERMELLES","NOYELLES LES VERMELLES"] ;
    tabcp['62990'] = ["LEBIEZ","ROYON","MARENLA","LESPINOY","HESMOND","MARESQUEL ECQUEMICOURT","CONTES","RIMBOVAL","EMBRY","SAINT DENOEUX","BOUBERS LES HESMOND","LOISON SUR CREQUOISE","OFFIN","BEAURAINVILLE"] ;
     
    function affichercommune(cp)
    {
       if (cp)
       {
           html = 'Commune : <select name=\"commune\" size=\"1\">';
           html += '<OPTION VALUE="0">Faites votre choix</OPTION>';
           var localites = tabcp[cp];
           for (i in localites)
           {
               html += '<option value=\"' + localites[i] + '\"> ' +  localites[i] + '</option>';
           }
           html += '</select>';
           document.getElementById('blocLocalites').innerHTML = html;
       }
    }
    </SCRIPT>
    Et l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <SELECT NAME="cp" SIZE="1" onchange="affichercommune(this.value)">
    </SELECT>
    .
    <span id="blocLocalites"></span>
    Mais la solution Ajax sera je pense beaucoup plus facile à mettre en oeuvre, je n'ose pas imaginer la prégénération de tes tableaux pour alimenter du javascript ...

  4. #4
    Membre régulier Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    merci beaucoup pour vos réponses .
    Le problème c'est que je ne connais pas du tout le javascript....il n'y aurait pas une solution php/mysql pour faire ça ?
    merci beaucoup !

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Si, mais tu auras un chargement complet de la page à chaque sélection d'un item de l'une des listes. Ca ne sera pas du plus bel effet... sans compter le clignotement et le petit 'ding' d'IE
    Je souscris complètement au conseil précédent : utilise AXAX.
    Tu trouveras dans la section Développement Web de developpez.com tous les tutoriels et les conseils nécessaires. Je te laisse le plaisir de trouver le tutoriel qui explique justement le principe de listes liées utilisant AJAX

Discussions similaires

  1. [AJAX] Menu déroulant dynamique pour parcourir une BD
    Par relena dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 25/03/2007, 17h05
  2. Réponses: 10
    Dernier message: 22/03/2007, 08h36
  3. menu déroulant dynamique
    Par jojo971 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2006, 14h43
  4. [Conception] Menu déroulant dynamique et administrable
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/05/2006, 15h37

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