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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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

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