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 :

Recharger un formulaire SELECT (ville-CP) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut Recharger un formulaire SELECT (ville-CP)
    Bonjour à tous !

    J'ai créé un formulaire dans lequel j'ai 2 SELECT un pour la ville et un pour le CP.

    Je voudrai que lorsque l'utilisateur choisi une ville, le CP correspondant s'affiche ds le select voulu (chargement de la page, recherche dans la BDD et affichage des données).

    Je vous montre le code créé qui ne marche pas du tout...

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     <select name='ville' onchange="javascript:window.location='ajoutGeo.php?ville='+this.value">
    		      <option value=''></option>";  
     
     
    			      <?php
    				  	if(isset($_GET['ville'])) {
    				  $ville=$_GET['ville'];
     
    				  	$query = "SELECT nom_ville FROM tab_ville order BY nom_ville";
    					$result = mysql_query ($query) or die ("Impossible d'exécuter la requete<br>$query<br>" );
     
    					 while ( $row = mysql_fetch_row($result) ) { 
    					    echo" <option value=\"$ville\">$row[0]</option><br>";
    					}
    					mysql_free_result($result);
    					}
    					else {
    					$query = "SELECT nom_ville FROM tab_ville order BY nom_ville";
    					$result = mysql_query ($query) or die ("Impossible d'exécuter la requete<br>$query<br>" );
     
    					 while ( $row = mysql_fetch_row($result) ) { 
    					    echo" <option value=\"$row[0]\">$row[0]</option><br>";
    					}
    					mysql_free_result($result);
    					}
    					?>        
    		    </select><br />
                 <label for="CP">Code Postal :</label>   
     
    			      <?php
    				  if(isset($_GET['ville'])) {
    				  $ville=$_GET['ville'];
     
    				  	$test=mysql_query("select id_ville from tab_ville where nom_ville='$ville'") or die(mysql_error());
    					$res=mysql_fetch_array($test);
    					$id_ville=$res['id_ville'];
     
     
    				  	$req= mysql_query("select id_CP from tab_villecp WHERE id_ville='$id_ville'") or die(mysql_error());
    					$res2=mysql_fetch_array($req);
    					$id_cp=$res2['id_CP'];
     
     
    					$query=mysql_query("select nom_CP from tab_cp where id_CP='$id_cp'") or die(mysql_error());
    					$res3=mysql_fetch_array($query);
    					$cp=$res3['nom_CP'];
    					    echo "$cp<br>";
     
    					}
    					else {
    					echo " <select name='CP'>     <option value=''></option>";
    					$query = "SELECT nom_CP FROM tab_cp";
    					$result = mysql_query ($query) or die ("Impossible d'exécuter la requete<br>$query<br>" );
    					 while ( $row = mysql_fetch_row($result) ) { 
    					    echo" <option value=\"$row[0]\">$row[0]</option><br>";
    					}
    					mysql_free_result($result);
    					}
    					?>        
    		    </select><br />
    J'ai 3 tables : la table ville, la table CP et la table qui fait la jointure entre les 2.

    Merci d'avance pour votre aide !

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    -> AJAX,

    Sur le onChange du premier <select>, tu executes une fonction qui aura pour but de remplir le second <select>.

    Attention sous IE, il faut que le second <select> soit contenu dans un <div> car IE ne gère pas le innerHTML dans un <select>.

    Sinon tu peux utiliser la méthode newOptions().

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    heu...

    Je débute en php je ne connais que php mysql pour etre franche...

    Si tu pouvais me guider...

    Merci en tout cas

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Sinon tu peux le faire en PHP/mysql mais niveau ergonomie/intuivité ca reste très restreint.

    Sinon,
    mets les dans un formulaire, ca sert à ca.
    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
    <form method="POST" action="mapagecourant.php">
    <select name="select1">
    ...
    </select>
    <?php
    if(isset($_POST['select1']))
        {
         echo '<select name="select2">';
          $sql = mysql_query("MA REQUETE WHERE truc='".$_POST['select1']."'");
          while($res = mysql_fetch_array($sql))
                   {
                    echo '<option value="'.$res['value'].'">'.$res['texte'].'</option>';
                    }
         echo '</select>';
         }
    ?>
    </form>
    Pas la peine de s'encombrer de 50 lignes de code je pense.

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Et bien mes select sont dans un formulaire déjà.

    Je vais tester avc ce que tu as fait et je vous tiens au courant !!!

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Rien du tout...

    Tu vois je veux juste pouvoir remplir le formulaire plus rapidement, tu choisis ta ville et automatiquement il te sort le CP mais garde la ville de selectionnée.

    Actuellement, j'arrive à récupérer mon CP et ma VILLE mais impossible de les afficher dans le SELECT...

    Voila merci

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ca doit être ta requête SQL pour remplir le second select qui est mauvaise

    Fait un echo $ta_requete; et execute là dans ton gestionnaire MySQL si tu en as un (style phpMyAdmin).

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    et bien mes requetes ont l'air bonnes car lorsque je selectionne la ville, il me recharge le questionnaire et m'affiche le CP (j'ai juste fait un echo) mais je n'arrive pas à mettre la réponse dans le select...

    Car mes variables sont bonnes, il les trouve et tout....

  9. #9
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $ville=$result['nom_ville'];
    echo" <option value='$ville'>$row[0]</option><br>";
    Je n'arrive pas à appeler ma variable et à la placer dans mon SELECT...

  10. #10
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Citation Envoyé par Little_flower Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $ville=$result['nom_ville'];
    echo" <option value='$ville'>$row[0]</option><br>";
    Je n'arrive pas à appeler ma variable et à la placer dans mon SELECT...
    echo" <option value='$ville'>".$ville."</option><br>"; ?

  11. #11
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    J'avais deja testé un truc du style mais rien du tout...

    Et du coup, avec ".$ville." au milieu, il ne m'affiche plus rien...

  12. #12
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Je vois pas trop comment t'aider autrement, tu n'expliques pas réellement ton problème si ce n'est que "ca ne marche pas"

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 10
    Par défaut
    Citation Envoyé par Little_flower Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $ville=$result['nom_ville'];
    echo" <option value='".$ville."'>".$row[0]."</option><br>";
    Je n'arrive pas à appeler ma variable et à la placer dans mon SELECT...
    essai pluto ça

  14. #14
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ca revient au même que ce qu'elle a écrit, moi je pensais qu'elle voulait afficher la ville.

  15. #15
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Alors, je récapitule ce qui marche et ce qui ne marche pas car je ne dois pas être très claire...

    Mon formulaire est consitué de 2 SELECT : un pour la ville un pour le CP.

    L'utilisateur choisit la ville dans le premier SELECT (je récupère une variable avec le nom de ma ville), la page se raffraichit et devrait afficher aintenant le même formulaire seulement dans le SELECT de la vlle, il y a la ligne sélectionnée avec le nom choisi et le CP correspondant apparait aussi dans le second SELECT...

    Me suivez-vous ?

    Jusqu'à la, je récupère bien ma variable ville mais le seule soucis que j'ai est de pouvoir l'afficher ds le SELECT...

    J'espère avoir été un peu plus claire...

  16. #16
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Je ne comprends pas, t'as une erreur ? ya rien qui s'affiche ? Tu sais pas faire une requete SQL telle que celle-ci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo '<select name="CP">';
    $sql = mysql_query("SELECT * FROM table WHERE ville='".$ville);
    while($res = mysql_fetch_array($sql))
         {
         echo '<option value='.$res['value'].'>'.$res['texte'].'</option>';
         }
    echo '</select>';

  17. #17
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Si je sais faire une requete de ce type la seule chose que je ne comprend pas c'est pour afficher ma réponse dans le select tout en gardant ts les résultats.

    Dans le code que tu as fourni, pourrais tu m'expliquer à quoi correspondent et car je pense que mon pb d'affichage vient de la...

    Merci d'avance

  18. #18
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ces variables correspondent aux valeurs des champs des enregistrements renvoyés par ta requete.

    Par exemple, si on a une table :
    auteurs(id,nom_auteur);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = mysql_query("SELECT * FROM auteurs");
    while($res = mysql_fetch_array($sql))
         {
          echo "Nom : ".$res['nom_auteur'];
         }

  19. #19
    Membre éclairé
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Par défaut
    Alors, j'ai modifié le code pour celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='$row->nom_ville'>$ville</option><br>";
    Actuellement, une fois la ville choisie, il m'affiche dans le select le nom de la ville choisie autant de fois qu'il y a de ville dans $row...

    Je sens qu'on va y arriver...

    En fait il faudrait faire un truc du genre :

    value='$ville'>$row->nom_ville</option>....

    Or si je fais uns structure de ce style, je ne récupère plus rien dans le select (vide)...

  20. #20
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bah c'est normal $row->nom_ville n'existe pas.

    Pour quoi tu mets pas $ville à la place si $ville il existe je comprends pas.

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

Discussions similaires

  1. rechargement de formulaire
    Par phil83 dans le forum Langage
    Réponses: 4
    Dernier message: 28/09/2006, 09h42
  2. Rechargement du formulaire après validation ?
    Par elitost dans le forum Struts 1
    Réponses: 13
    Dernier message: 21/09/2006, 12h46
  3. pb formulaire Select multiple
    Par kamalkam dans le forum ASP
    Réponses: 6
    Dernier message: 15/06/2006, 09h41
  4. récupérer le nom d'une valeur d'un formulaire select
    Par kenny49 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 14/06/2006, 14h59
  5. Recharger un formulaire
    Par fredhali2000 dans le forum Access
    Réponses: 1
    Dernier message: 26/05/2006, 15h09

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