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

Langage PHP Discussion :

liste deroulante method get


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut liste deroulante method get
    Bonjour je debute en php, donc j'ai un petit probleme avec une liste deroulante de region et departement.

    Je m'explique, j'ai crée un moteur de recherche du genre leboncoin.fr avec une liste deroulante des regions de france.
    Quand je selectionne une region et que je valide ca me renvoi bien vers index.php?p=lesannonces&offres&area=rhones_alpes donc la pas de probleme.

    Mais ce que je voudrais c'est que si je selectionne un departement de la region ca me renvoi à: index.php?p=lesannonces&offres&area=rhones_alpes&dep=Ain

    Je vous met le select que j'ai fait.

    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
    echo" <select name='area'>
    		        <option value=".$id.">".$ligne14['nom_region']."</option>
    			<optgroup label='-- Departement --'></optgroup>
     
    ";
    //Liste des departement de la région
    while($ligne14){
    echo"	
    		<option value=".$ligne14['code'].">".$ligne14['nom_departement']."</option>
    ";
    $ligne14=mysql_fetch_assoc($res9);
    }	
    echo"
    	<option name='' value=''  >Toute la France</option>
    	<optgroup  label='-- Region --'></optgroup>
    ";
    //Liste des regions
    while($ligne9) {
    	echo "
    		<option value=".$ligne9['nom_region2'].">".$ligne9['nom_region']."</option>
    	";
    $ligne9=mysql_fetch_assoc($res10);
    }
    echo"
    </select>
    Voila donc je ne sais pas comment faire pour avoir le departement que je selectionne dans l'url, j'attend votre aide merci

  2. #2
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    Salut fais voir le HTML produit par cette chose

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    Comment ca le HTML produit par cette chose ?

  4. #4
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    j'ajouterai un préfixe "reg_" aux valeurs :
    <option value=".$ligne9['nom_region2'].">".$ligne9['nom_region']."</option>
    par exemple deviendrai
    <option value='reg_".$ligne9['nom_region2']."'>".$ligne9['nom_region']."</option>

    ensuite
    si la valeur reçue commence par 'reg_' c'est une région sinon c'est un département

    en passant le tag <option></option> n'a pas d'attribut name il est donc inutile dans ton code <option name='' value='' >Toute la France</option>

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    Moi ce que je veux c'est le meme systeme que sur leboncoin, c'est à dire quand on selectionne une région ca l'indique dans l'ur(donc la pas de probleme j'ai réussi) et quand je selectionne le departement de la région je voudrais ce genre d'url index.php?p=lesannonces&offres&area=rhones_alpes&dep=Ain
    mais je n'arrive pas à faire apparaitre "dep" dans l'url.

  6. #6
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Stoker dans la value des options les valeurs s'éparée par | et lors que la sélection séparer les valeurs en javascript et les mettres dans des champs différents

    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
     
    <form method='GET' action='page2.php'>
    <input type='text' id='area' name='area'><br/>
    <input type='text' id='dep' name='dep'><br/>
    <select id='liste' onchange='tab=this.value.split("|");document.getElementById("area").value=tab[0];document.getElementById("dep").value=tab[1];'>
    	<optgroup  label='-- Region1 --' value='r1'>
    		<option value='1|1'>1</option>
    		<option value='1|2'>2</option>
    		<option value='1|3'>3</option>
    		<option value='1|4'>4</option>
    	</optgroup>
    	<optgroup  label='-- Region10 --' value='r10'>
    		<option value='10|11'>11</option>
    		<option value='10|12'>12</option>
    		<option value='10|13'>13</option>
    		<option value='10|14'>14</option>
    	</optgroup>
    </select>
    </form>

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    merci de ton aide mais je n'ai pas trés bien compris comment faire et pourquoi avoir ajouter les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type='text' id='area' name='area'><br/>
    <input type='text' id='dep' name='dep'><br/>

  8. #8
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    un select ne peut avoir qu'un seul nom(name)
    tu ne peux mettre q'une valeur dans les options
    lorsque tu fait submit du formulaire
    le nom et la valeur sélectionnée sont envoyés
    <select name="mon_select">
    <option valeur="1">ma valeur1</option>
    <option valeur="2">ma valeur2</option>
    <option valeur="3">ma valeur3</option>
    </select>

    si tu selection "ma valeur2" le submit envois dans l'url "&mon_select=2"
    le fait d'utiliser <optgroup> ne change rien, c'est simplement une question de présentation dans le formulaire.

    donc si tu veux envoyer 2 information dans l'url "&area=xxxx&dep=yyyy"
    il faut deux noms (name) et deux valeurs,donc l'utilisation des inputs

    dans les options je met dans la valeur une combinaison des deux valeurs séparée par "|"

    lorsque tu clique pour changer la valeur le javascript prend la valeur dans le select la sépare en deux autres valeurs et remplis les champs "area" et "dep"

    ici dans l'exemple les champs sont visibles mais il suffit de mettre type='hidden' pour les rendre invisibles

    comme le select n'a pas de nom (name) le submit n’envoie pas sa valeur

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    j'ai à peut prét compris le truc c'est quand je met le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange='tab=this.value.split("|");document.getElementById('area').value=tab[0];document.getElementById('dep').value=tab[1];'
    ca ne fonctionne pas du tous (désolé je debute je ne sais pas comment utiliser le javascript)

  10. #10
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    tu a peut être oubliè de protéger (escape) les double "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<select name='area' onchange='tab=this.value.split(\"|\");document.getElementById('area').value=tab[0];document.getElementById('dep').value=tab[1];'>";
    sinon
    ca ne fonctionne pas du tous
    n'est pas très parlant comme erreur.

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    ca enleve bien toutes les petites erreurs.
    Donc la j'ai bien area et dep dans l'url mais je n'arrive pas à leurs faires prendre une valeur, des que je selectionne une region ou un departement les valeur de area et dep sont vide dans l'url

  12. #12
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Si l'exemple que j'ai mis est copié/collé dans un fichier.html et qu'il fonctionne, c'est un soucis dans le php.

    Vérifie si tu n'a pas oubliè un id=""

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    non je n'ai pas oublié de id mais par quoi est-ce que je dois remplacer les valeur des regions, je suppose que je ne dois pas laisser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <optgroup  label='-- Region1 --' value='r1'>
    		<option value='1|1'>1</option>
    		<option value='1|2'>2</option>
    		<option value='1|3'>3</option>
    		<option value='1|4'>4</option>
    	</optgroup>
    	<optgroup  label='-- Region10 --' value='r10'>
    		<option value='10|11'>11</option>
    		<option value='10|12'>12</option>
    		<option value='10|13'>13</option>
    		<option value='10|14'>14</option>
    	</optgroup>

  14. #14
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Citation Envoyé par moza2409 Voir le message
    non je n'ai pas oublié de id mais par quoi est-ce que je dois remplacer les valeur des regions, je suppose que je ne dois pas laisser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <optgroup  label='Nord Picardie'>
    		<option value='Nord Picardie|département 59'>département 59</option>
    Quelque chose comme ça.
    Désolé mais suis nul en Géographie et Belge de surcroît donc les départements et régions c'est pas mon fort.
    (lol)
    value='r1' et value='r10' ne servent a rien tu peux supprimer (c'est un reste d'un test précédent)

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    j'ai tous reverifié et toujours pareil.
    t'es sur qu'il ne faut pas mettre de valeur dans les hidden ?

  16. #16
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Citation Envoyé par moza2409 Voir le message
    t'es sur qu'il ne faut pas mettre de valeur dans les hidden ?
    cela n'influence pas le comportement, tu pourras les mettre hidden quand cela fonctionnera.
    je viens de refaire le test avec le code que j'ai fournis (en ajoutant un bouton submit) cela fonctionne très bien.

    poste ton code, car je ne vois pas comment t'aider autrement

  17. #17
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    Voici mon code
    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
    //Liste des regions
    $req9="SELECT * FROM region
    ";
    $res10=mysql_query($req9,$cnx);
    $ligne9=mysql_fetch_assoc($res10);
     
     
    //Pour savoir quelles sont les departements de la region
    $dn2 = " SELECT departement.nom_departement, departement.id_region, departement.code, region.nom_region
    FROM departement
    LEFT JOIN region ON departement.id_region = region.id_region
    WHERE
    region.nom_region2 = '".$id."'
    ";
    $res9=mysql_query($dn2,$cnx);
    $ligne14=mysql_fetch_assoc($res9);
    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
    32
    33
    34
    35
     
    <form  action='index.php'  method='get' enctype='multipart/form-data'>
    <input type='hidden' id='area' name='area' >
    <input type='hidden' id='dep' name='dep' >
    <select onchange='tab=this.value.split(\"|\");document.getElementById('area').value=tab[0];document.getElementById('dep').value=tab[1];'>
     
    <optgroup style='background-color:#dcdcc3;' label='-- Departement --'></optgroup>		
    ";
     
    //Liste des departement de la région
    while($ligne14){
    echo"	
    <option value='".$ligne9['nom_region2']."|".$ligne14['nom_departement']."'>".$ligne14['nom_departement']."</option>
    ";
    $ligne14=mysql_fetch_assoc($res9);
    }	
     
    echo"
    <option name='' value='' style='background-color:#c9e750;' >Toute la France</option>
    <optgroup style='background-color:#dcdcc3;' label='-- Region --'></optgroup>
    ";
    //Liste des regions
    while($ligne9) {
    	echo "
    <option id='area' value=".$ligne9['nom_region2'].">".$ligne9['nom_region']."</option>
    ";
    $ligne9=mysql_fetch_assoc($res10);
    }
     
    echo"
    </select>
     
    <input type='submit' value='Rechercher'>
    </form>	
    ";

  18. #18
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Citation Envoyé par moza2409 Voir le message
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <option id='area' value=".$ligne9['nom_region2'].">".$ligne9['nom_region']."</option>
    tu peux déjà supprimer "id='area' " dans la ligne <option....
    mais je suis un peu perdu dans le résultat que tu veux obtenir:
    dans les options de ton select tu veux
    -- Departement --
    departement 1
    departement 2
    departement 3
    ....(etc)...
    -- Region --
    Region 1
    Region 2
    Region 3
    ....(etc)...

    et lorsque l'on clic sur un departement avoir dans l'url &dep=xxx
    et losrque l'on clic sur une region avoir dans l'url &area=yyy

    ou dans ton select tu veux
    -- Region 1 --
    la Region 1
    departement 1
    departement 2
    departement 3
    ....(etc autres departements de la region 1)...
    -- Region 2--
    la Region 3
    departement 4
    departement 5
    departement 6
    ....(etc autres departements de la region 2)...
    -- Region 3--
    ....(etc)...

    et lorsque tu clic sur un département (ou "la Region x")
    avoir dans ton url &aera=xxx&dep=yyy

    cela me permettre de mieux te répondre car ton code semble un mix des deux solutions

  19. #19
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 39
    Par défaut
    Donc les options du select j'ai ca (image jointe)

    Quand je selectionne uné region avoir l'url area=region
    et lorsque l'ont clique sur un departement avoir l'url area=region&dep=departement
    Images attachées Images attachées  

  20. #20
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<option id='area' value=".$ligne9['nom_region2'].">".$ligne9['nom_region']."</option>";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<option value='".$ligne9['nom_region2']."|'>".$ligne9['nom_region']."</option>";
    et tu obtiendra pour une departement &area=yyy&dep=xxxx
    et pour une région &area=yyy&dep= (dep=rien)

    c'est tout ce que je peux faire pour toi
    il faudra aussi passer par une variable contenant la valeur de la region
    a utiliser à la place de $ligne9['nom_region2']
    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo"<option value='".$ligne9['nom_region2']."|".$ligne14['nom_departement']."'>".$ligne14['nom_departement']."</option>";

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2009, 15h37
  2. Parcourir une liste deroulante
    Par brandon dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/02/2005, 19h03
  3. [JSP]Problème liste deroulante dynamique
    Par besco dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 09/09/2004, 17h58
  4. liste deroulante avec plusieurs champs
    Par JulienT dans le forum Struts 1
    Réponses: 4
    Dernier message: 20/04/2004, 17h17
  5. [langage] liste déroulante
    Par Jeh dans le forum Langage
    Réponses: 6
    Dernier message: 16/09/2003, 10h14

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