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 :

Liste déroulante dynamique qui ne renvoie pas sur la bonne page


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Liste déroulante dynamique qui ne renvoie pas sur la bonne page
    Bonjour à tous !

    Alors voici mon problème :

    J'ai 2 listes déroulantes dynamqiues (d'abord parce qu'elles sont construitent grace à des requêtes mais aussi parce que la 2ème lsite déroulante se remplie grace à l'information envoyé par la 1er liste) qui fonctionnent bien ...

    Quand je met dans m barre de navigateur les informations qu'il faut ca fonctionne bien ... mais quand je clique sur ma 1er liste et que je fais un choix, cela ne me renvoie pas sur ma page mais une une autre page que je n'appel pas du tout ... j'aimerais savoir si vous pouviez m'aider ...

    Voici l'exemple :
    Voir la page des domaines

    Quand je suis ici, si je change ma 2ème liste déroulante, ca fonctionne bien et j'ai même la région qui reste affichée dans ma 1er liste comme il faut !

    Mais quand je veux changer de région et que je choisit au hasard "Alsace" et bien ca me recharge pas ma page avec la région alsace et ses domaines mais ca m'envoit sur la page "Accueil" du site ..

    Je ne comprend pas d'où cela peut venir ...
    Voici le code des listes déroulantes ... ca ne peut venir que de la ! non ?

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
    // On récupère si elle existe la valeur de la région envoyée par le formulaire
    if (isset($_POST['region'])) {
    $idr=$_POST['region'];
    }
    else {
    $idr=$_GET['region'];
    }
    ?>
    <html>
    <head>
    <script>
    function Lien (f)
    {
        i = f.elements['domaine'].selectedIndex;
        if (i == 0) return;
        top.location = 'domaine.php?page=dom&region=' + f.elements['region'].value + '&domaine=' + f.elements['domaine'].value;
    }
    </script>
    </head>
    <body>
    <?php 
    if(isset($_GET['domaine']) && $_GET['domaine'] != "") 
    { 
        $region_selectionnee = $_POST['region']; 
        $dept_selectionne = $_POST['domaine'];
    }
     
        $sql1 = "SELECT id_region, nom_region FROM region ORDER BY nom_region"; 
        $rech_regions = mysql_query($sql1); 
        $code_region = array(); 
        $region = array(); 
        /* On active un compteur pour les régions */ 
        $nb_regions = 0; 
        if($rech_regions != false) { 
            while($ligne = mysql_fetch_assoc($rech_regions)) { 
                array_push($code_region, $ligne['id_region']); 
                array_push($region, $ligne['nom_region']); 
     
                /* On incrémente de compteur */ 
                $nb_regions++; 
            } 
        }
    ?>
     
    <form action="domaine.php?<?php if (isset($_GET['appellation'])) { echo "page=dom&&region=".$_GET['region']."&&domaine=".$_GET['domaine']."&&appellation=".$_GET['appellation'].""; } else { echo "page=dom&&region=".$_GET['region']."&&domaine=".$_GET['domaine'].""; } ?>" method="post" id="chgdept">
    	<img src="images/spacer.gif" height="10" width="10" />
        <select name="region" id="region" class="deroulant" onChange="document.forms['chgdept'].submit();">
        	<option value="-1">- Choisissez votre région -</option>
    			<?php
                for($i = 0; $i < $nb_regions; $i++) {
    				if (isset($idr) && $idr==$code_region[$i]) {$selection="selected";} else {$selection="";} {
    			?>
                    <option value="<?php echo($code_region[$i]); ?>"<?php echo($selection) ?>> <?php echo($region[$i]) ?>
                <?php
    				}
                }
                ?>
        </select>
        <br />
        <br />
        <?php
        mysql_free_result($rech_regions);
        /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
    	if(isset($idr) && $idr != -1) {
    		/* Création de la requête pour avoir les départements de cette région */
    		$sql2 = "SELECT id_domaine, nom_domaine, id_region, region_domaine_ FROM domaine, region WHERE id_region = ". $idr ." and region_domaine_ = id_region ORDER BY nom_domaine";
    		$rech_dept = mysql_query($sql2);
    		/* Un petit compteur pour les départements */
    		$nd = 0;
    		/* On crée deux tableaux pour les numéros et les noms des départements */
    		$code_dept = array();
    		$nom_dept = array();
    		/* On va mettre les numéros et noms des départements dans les deux tableaux */ 
    			while($ligne_dept = mysql_fetch_assoc($rech_dept)) { 
    				array_push($code_dept, $ligne_dept['id_domaine']); 
    				array_push($nom_dept, $ligne_dept['nom_domaine']); 
    				$nd++; 
    			}
    		/* Maintenant on peut construire la liste déroulante */
    		?>
    		<img src="images/spacer.gif" height="10" width="10" />
            <select name="domaine" id="departement" class="deroulant" onChange="Lien(this.form);">	
    			<option value="-1">- Choisissez votre domaine -</option>
    			<?php   
    				for($d = 0; $d<$nd; $d++) { 
    					if (isset($dept_selectionne) && ($dept_selectionne == $code_dept[$d])) {
    					echo "<option value='".$code_dept[$d]."' selected>".$nom_dept[$d]."</option>";
    					}
    					else {
    					echo "<option value='".$code_dept[$d]."'>".$nom_dept[$d]."</option>";
    					}
    				} 
    			?>
    		 </select>
             <?php
             /* Un petit coup de balai */
    		 mysql_free_result($rech_dept);
    			 $regencours=$_POST['region'];
    			 $domaine=$_POST['domaine'];
    		?>
    	<?php
    	}
    	?>
    </form>
    </body>
    </html>
    Bon et bien j'attend de vos nouvelles ... si vous souhaitez d'autres explications ou d'autre bout de code ...

    Merci à vous pour votre attention,

    Adaviada

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Côté test je ne vois aucun problème.

Discussions similaires

  1. fonction avec if sur input radio qui ne renvoie pas la bonne valeur
    Par eddflo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2009, 01h20
  2. Réponses: 8
    Dernier message: 14/05/2009, 22h54
  3. filtre sur liste déroulante dynamique
    Par Sami Xite dans le forum Access
    Réponses: 2
    Dernier message: 06/05/2008, 06h37
  4. formulaire qui n'envoie pas a la bonne page
    Par hansaplast dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/06/2006, 14h13

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