Actualiser une liste en fct de la précédente

papouuu86 Messages postés 86 Statut Membre -  
papouuu86 Messages postés 86 Statut Membre -
Bonjour,

J'ai créé deux listes déroulantes l'une où l'utilisateur choisit le type d'ordinateur (PC ou MAC)
l'autre où sont proposés tous les modèle spécifiques à la marque. Donc j'aimerais que lorsque l'utilisateur choisit PC l'autre liste affiche tous les modèles de PC présents dans la BDD et ce sans passer d'une page à l'autre (j'aurais plein d'autres options alors s'il faut recharger la page a chaque fois ca va vite devenir lourd.)
ma question est simple: quelle technologie dois-je utiliser? je penche pour l'AJAX mais je n'ai quasiment aucune connaissance sur le sujet. Je suppose que ce n'est pas faisable en PHP uniquement.

Merci a vous ;)
Configuration: Windows Vista
Firefox 3.0.14

1 réponse

  1. papouuu86 Messages postés 86 Statut Membre 11
     
    Bonjour, j'ai trouvé un lien sympa :
    https://forum.phpfrance.com/tutoriels/formulaires-listes-deroulantes-dynamiques-liees-t4562.html

    mais je n'arrive pas à avoir le même rendu une fois mon code adapté... rien ne change dans ma 2eme liste déroulante...

    		$idr = isset($_POST['region'])?$_POST['region']:null;
    		if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] != "")
    
    {
    
        $region_selectionnee = $_POST['region'];
    
        $dept_selectionne = $_POST['departement'];
    
    ?>
    
    <p>Vous avez sélectionné le département <?php echo($dept_selectionne); ?> dans la région <?php echo($region_selectionnee); ?></p>
    
    <?php
    
    }
    	?>
    	<center>
    	<form action="config.php" method="POST">
    	
    		<?php
    		$nbre=array();
    		
    		$mq=array();
    		
    		$config1=$connect->prepare('SELECT * FROM CONFIGURATEUR');
    		$config1->execute();
    		
    		$nb_mq=0;
    		
    		foreach($config1 as $ligne1)
    		{	
    			if ($ligne1['MARQUE_CONFIG']=="MAC")
    			{$cd_mq=1;}
    			elseif($ligne1['MARQUE_CONFIG']=="PC")
    			{$cd_mq=2;}
    			array_push($nbre, $cd_mq);
    			array_push($mq, $ligne1['MARQUE_CONFIG']);
    			$nb_mq++;
    			$zut=$ligne1['MARQUE_CONFIG'];
    		}
    		echo $cd_mq;
    		echo $ligne1['MARQUE_CONFIG'];
    		?>
    		<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
    
    <fieldset style="border: 3px double #333399">
    
    <legend>Sélectionnez une région</legend>
    
    <select name="region" id="region" onchange="document.forms['chgdept'].submit();">
    
      <option value="-1">- - - Choisissez une région - - -</option>
    
        <?php
    
        for($i = 0; $i < $nb_mq; $i++)
    
        {
    
    ?>
    
      <option value="<?php echo($nbre[$i]); ?>"<?php echo((isset($idr) && $idr == $nbre[$i])?" selected=\"selected\"":null); ?>><?php echo($mq[$i]); ?></option>
    
    <?php
    
        }
    
        ?>
    
    </select>		
    	
    	<?php
    	 //if(isset($idr) && $idr != -1)
    
        //{
            $conf2 = $connect->prepare('SELECT * FROM CONFIGURATEUR WHERE MARQUE_CONFIG="'.$zut.'"');
    		$conf2->execute();
            
                $nd = 0;
    
                /* On crée deux tableaux pour les numéros et les noms des départements */
    
                $id_config = array();
    
                $nom_ordi = array();
    
                /* On va mettre les numéros et noms des départements dans les deux tableaux */
    
                foreach($conf2 as $ligne2)
    
                {
                    array_push($id_config, $ligne2['ID_CONFIG']);
    
                    array_push($nom_ordi, $ligne2['MODELE_CONFIG']);
    
                    $nd++;
    
                }
    			echo $id_config." ". $nom_ordi;
    
                /* Maintenant on peut construire la liste déroulante */
    
                ?>
    
    <select name="departement" id="departement">
    
                <?php  
    
                for($d = 0; $d<$nd; $d++)
    
                {
    
                    ?>
    
      <option value="<?php echo($id_config[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $id_config[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_ordi[$d]); ?></option>
    
                    <?php
    
                }
    
    ?>
    
    </select>
    
    <?php
    
            
    //}
            
        
    
    ?>
    
    <br /><input type="submit" name="ok" id="ok" value="Envoyer" />
    
    </fieldset>
    
    </form>
    
    
    </body>
    
    </html>
    	</table>
    	</form>
    		<?php
    		
    		?>
    		<a href="testttttttt.php">ici</a>
    </body>
    </html>


    DSL pour le pavé mais le je sèche et je dois vite partir en déplacement
    0