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 ;)
A voir également:

1 réponse

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