maktu | Bonjour je souhaiterais savoir comment laisser afficher la valeur que j'ai selectionner dans la première liste, lorsque je selectionne un element de cette liste.
J'utilise des formulaires. Les Onchange me "réinitialise" la liste a chaque fois.... J'ai vu qu'il faut utiliser selected... mais je ne suis pas arriver a obtenir le bon résultat.
voici mon code
Code :
- <?php
- session_start();
- ?>
- <?php
- function menu_deroulant_famille($file_name)
- // Définition des variables utilisées dans la fonction:
- // $row --> numéro de l'enregistrement du fichier
- // $famille --> nom de la famille de l'enregistrement précédent
- // $sousfamille --> nom de la sous famille de l'enregistrement précédent
- {
- $famille="";
- $sousfamille="";
- $row = 1;
- echo "<SELECT name='lst-famille' Size='1' onchange='document.form1.submit();' >"; // Création d'une liste déroulante pour les familles et sous familles.
- $handle = fopen($file_name, "r" );
- //Lecture de tous les enregistrements du fichier
- while (($data_catalogue = fgetcsv($handle, 1000, ";" )) !== FALSE)
- {
- $num = count($data_catalogue);
- $row++;
- if ($data_catalogue[0]!=$famille) // nouvelle famille
- {
- if ($famille!="" ) echo "<OPTION> <br></OPTION>";
- echo "<OPTION style='background:rgb(192,192,192)'>$data_catalogue[0]<br></OPTION>";
- }
- else // famille équivalente à la précédente donc recherche si nouvelle sous famille
- {
- if ($data_catalogue[1]!=$sousfamille) // nouvelle sousfamille
- {
- echo "<OPTION>$data_catalogue[1]<br></OPTION>";
- }
- }
- $famille=$data_catalogue[0]; // mémorisation de la famille de l'enregistrement courant
- $sousfamille=$data_catalogue[1]; // mémorisation de la famille de l'enregistrement courant
-
- }
- fclose($handle);
- echo "</SELECT>";
- }
- // Récupération de la Valeur de la Première liste
- if(isset($_POST["lst-famille"]))
- {
- $Vfamille=$_POST["lst-famille"];
- function menu_deroulant_marque($file_name,$famille)
- // Définition des variables utilisées dans la fonction:
- // $row --> numéro de l'enregistrement du fichier
- // $famille --> nom de la famille ou sous famille où il faut rechercher les marques existantes
- // $marque --> nom de la marque correspondate
- {
- $marque="";
- $marque[0]="";
- $row = 1;
- echo "<SELECT name='lst-marque' Size='1'>"; // Création d'une liste déroulante pour les marques.
- $handle = fopen($file_name, "r" );
- //Lecture de tous les enregistrements du fichier
- while (($data_catalogue = fgetcsv($handle, 1000, ";" )) !== FALSE)
- {
- if (($data_catalogue[0]==$famille) || ($data_catalogue[1]==$famille) || ($famille=="" ) || ($famille==$choix) || ($row==1)) // La famille ou la sous famille correspondent
- {
- //si la marque actuelle est différente de la marque précédente --> mémorisataion.
- if ($marque[$row-1]!=$data_catalogue[2])
- {
- $marque[$row]=$data_catalogue[2]; // mémorisation de la marque pour le tri
- $row++;
- }
- }
- // if ($Vfamille==$famille) //&&(!isset($_SESSION[$marque]) Vérification si la valeur récupéré est égal à la valeur conçernant la marque.
- // {
- // echo "<OPTION> $data_catalogue[2]</OPTION>";
- // $_SESSION[$marque]="aa";
- // }
- // else if ($Vfamille==$sousfamille)//&&(!isset($_SESSION[$marque])
- // {
- // echo "<OPTION> $data_catalogue[2]</OPTION>";
- // $_SESSION[$marque]="aaa";
- // }
- }
- fclose($handle);
- }
- //echo "<OPTION>$marque[1]<br></OPTION>";
- // for ($i=2; $i<$row ; $i++)
- // {
- // if ($marque[$i]!="" )
- // {
- // echo "<OPTION>$marque[$i]<br></OPTION>";
- // }
- // }
- echo "</SELECT>";
- }
-
- // MAIN
- $catalogue="catalogue.csv";
- $indexbase="baseindex.csv";
- $choix="Choisissez une catégorie";
- $choixmarque="Choisissez une marque";
- $sel_famille="";
- $sel_marque="";
- ?>
- <html>
- <head>
- <form name="form1" method="post" action="">
- <fieldset style="width: 1000px">
- <legend>Liste liées</legend>
- <?php
- menu_deroulant_famille($catalogue);
- menu_deroulant_marque($indexbase,$sel_famille);
- ?>
- </form>
- <?php
- echo $Vfamille;
- session_destroy();
- ?>
- </body>
- </html>
|
|