Selectionner une val d'aprés une autre

ikramta Messages postés 151 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 février 2016 - 24 juin 2008 à 15:45
atreides51 Messages postés 11 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 décembre 2008 - 26 sept. 2008 à 22:34
salut tout le mande ,j'ai besoin de votre aide  et merci.
j'ai un formulaire qui contient
<select name="typemv">
 <option value="v1">entre</option>
 <option value="v2">sortie</option>
    </select>
et il contient aussi
</select></td></tr>
 
  <tr><td>fournisseur:</td>
    <td>
 
 <?php
mysql_connect("localhost","root","");
mysql_select_db("gestionstk");
$q="select nom from fournisseur";
$r=mysql_query($q);
?>


<select name="fournisseur">
<option></option>


<?php
while($s=mysql_fetch_array($r))


{


echo "<option >".$s["nom"]."</option>";


}
mysql_close();
?>

</select>
  
  <tr><td>client:</td>
    <td><?php
mysql_connect("localhost","root","");
mysql_select_db("gestionstk");
$q="select nomclt from client";
$r=mysql_query($q);
?>


<select name="client">
<option></option>


<?php
while($s=mysql_fetch_array($r))


{


echo "<option >".$s["nomclt"]."</option>";


}
mysql_close();
?>
</select>
jusqu'a maintenant tout va bien mais le probleme est que suivant la valeur de "typemv"

je doit inserer  le fournisseur ou bien le client
tout ce teste ce passe dans le formulaire lui meme  comment je peut tester la valueur du typemv et elle existe dans le meme formulaire

2 réponses

atreides51 Messages postés 11 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 décembre 2008
26 sept. 2008 à 22:04
Bonsoir, d'apres ce que je comprends tu veux en fonction du fournisseur choisi dans typemv afficher ses clients dans ton select client..
il faut utiliser javascript par exemple mais aussi poser tes conditions dans "select nomclt from client" pour trouver la liaison avec ton fournisseur.
0
atreides51 Messages postés 11 Date d'inscription lundi 13 novembre 2000 Statut Membre Dernière intervention 18 décembre 2008
26 sept. 2008 à 22:34
essaye avec ses 2 fichiers :
index.php c'est ta page avec tes 2 select gerer par javascript
lire_client.php retourne les valeur de la table client.
verifie les clauses WHERE en fonction de tes champs tables
je l'utilise pour une table categorie et sous catégorie donc dans le mm esprit que toi.

index.php
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
 /**
  * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
  */
 function sendData(param, page)
 {
  if(document.all)
  {
   //Internet Explorer
   var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
  }//fin if
  else
  {
      //Mozilla
   var XhrObj = new XMLHttpRequest();
  }//fin else




  //définition de l'endroit d'affichage:
  var content = document.getElementById("contenu");
  
  XhrObj.open("POST", page);





  //Ok pour la page cible
  XhrObj.onreadystatechange = function()
  {   if (XhrObj.readyState 4 && XhrObj.status 200)
    content.innerHTML = XhrObj.responseText ;
  }





  XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  XhrObj.send(param);
 }//fin fonction SendData





    </script>
</head>






      ----

        Fournisseur :,
        <?php
include('../connexion.php');
   $i=0; // variable de test
   $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

   // Séléction de tous les enregistrements de la table Catégorie
   $rq="Select nom from fournisseur order by id;";
   $result= mysql_query ($rq) or die ("Select impossible");
?>
          <select size="1" name="general" onChange="sendData('id='+this.value,'lire_client.php')" onkeyup="sendData('id='+this.value,'lire_client.php')">
            <?php    
   while ($dt=mysql_fetch_row($result))
   {
    // Remplir la liste déroulante des catégorie 
 echo "<option value=".($dt[0]).">".($dt[1])."</option>";
    if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
   }
   
   ?>
          </select>,
     
      ----

        Client
          :&nbsp;,
          

 <?php 
  // affichage des sous-catégorie appartenant à la première catégorie.
   echo "<select size='1' name='categ'>";  
    $rq="Select nomclt from client where code_fournisseur=".$j." order by id;";
    $result= mysql_query ($rq) or die ("Select impossible");
     // $i = initialise le variable i
    $i=0;
    while ($dt=mysql_fetch_row($result))
    {
  echo "<option value=".$dt[0].">".htmlentities($dt[1])."</option>
";
    }   
 echo "</select>";
mysql_close();

   ?>
  ,
     
   

</html>




fichier lire_client.php




<?php
header('Content-type: text') ; // on déclare ce qui va être afficher
include('../connexion.php');





// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){





    $rq="Select * from client where code_fournisseur=".$_POST['id']." order by id;";
    $result= mysql_query ($rq) or die ("Select impossible");
     // $i = initialise le variable i
    $i=0;
 if (mysql_num_rows($result)>0)
 {
   echo "<select size='1' name='categ'>";
 }
 else
 {
   echo utf8_encode("Pas de sous catégories disponible"); 
 }
    while ($dt=mysql_fetch_row($result))
    {  
  echo "<option value=".($dt[0]).">".htmlentities($dt[1])."</option>
";
    }   
 echo "</select>";
}
mysql_close();


?>
0
Rejoignez-nous