Liste déroulante php/javascript

Signaler
Messages postés
37
Date d'inscription
mercredi 2 janvier 2008
Statut
Membre
Dernière intervention
28 août 2008
-
Messages postés
3
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
19 août 2008
-
Bonjour,
voila mon probleme :
J'ai deux listes déroulantes et je souhaite que la deuxième se remplisse en fonction du choix dans la première.
J'ai deja tenté des trucs mais je n'arrive pas à obtenir exactement ce que je souhaite, pouvez-vous m'aider svp?

Voici mon code :

<script>
            function Choix(form) {
                i = form.numStatut.selectedIndex;
                if (i == 0) {
                  return;
                  }
                switch (i) {
                case 1 : var txt = new Array ('Matériel','Poissons','Sécurité','goiuy'); break;
                case 2 : var txt = new Array ('Radioactivité','Information','Mesures'); break;
                case 3 : var txt = new Array ('Philosophie','Psychologie','Humour'); break;
                }
                for (i=0;i<4;i++) {
                  form.nomPersonnel.options[i+1].text=txt[i];
                  }
                }
    </script>
    <form name="Choix1" method="post" action="">
        <tr>
            <td valign='top' align="left"> Service : </td>
            <td class ="form_text">
            <?php
            // déclaration requete sql
            $connect = mysql_connect("localhost","root","");
            $requete1="select * from `test`.`statut` order by `nomStatut`";   
            $resultat1=mysql_query($requete1) or die ("Exécution de la requête impossible");
            ?>
            <?php
            //Création d'un formulaire contentant une liste de sélection
            echo'<select name="numStatut" style="width:230px" onChange="Choix(Choix1)" >';
            echo "<option value='--Choisir le statut--'>--Choisir le statut--</option>";
            while($ligne=mysql_fetch_array($resultat1))
                {extract($ligne);
                    if(isset($_POST['numStatut']) && $_POST['numStatut']==$numStatut)
                        $defaut="selected";
                    else $defaut="";
                        echo "<option value='$numStatut' $defaut>$nomStatut</option>";
                }
                echo "</select>";
            ?>
            </td>
        </tr>
        <tr>
            <td class="form_field" valign="center" align="left"> Personnel : </td>
            <td class ="form_text">
        <?php
        //Création d'un formulaire contentant une liste de sélection
        echo'<select name="nomPersonnel" style="width:230px">';
        echo "<option value='--Choisir la personne--'>--Choisir la personne--</option>";
        ?>            <!-- Deuxième ligne du tableau -->
            <OPTION></OPTION>
            <OPTION></OPTION>
            <OPTION></OPTION>
            <OPTION></OPTION>
            </SELECT>
        </tr>

FIN DU CODE

Merci d'avance pour les personnes qui pourront m'aider à modifier ce code.

1 réponse

Messages postés
3
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
19 août 2008

c ilham

salut a tous jai affronte le meme probleme mais si tu as des valeures fixes et limite tu px tente ce code ca marche tres bien
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv ="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<script language="javascript">
<!--fonction qui remplisse le deuxieme combobox-->
var listeprojet = Array();
listeprojet[0] = Array("Application", "App_1");
listeprojet[1] = Array("Application", "App_1");
listeprojet[2] = Array("Site Web", "Site web 1");
listeprojet[3] = Array("Site Web", "site web 2");
listeprojet[4] = Array("Conception", "Concep 1");
listeprojet[5] = Array("Conception", "Concep 2");
listeprojet[6] = Array("Conception", "Concep 3");
listeprojet[7] = Array("Conception", "Concep 4");




function fillCombo(){
 var combo = document.getElementById('select');
 var selected_value = combo.value;
 combo_2 = document.getElementById('projet');
 //effacer les elements dans le combo 2
 combo_2.options.length = 1;
 
 //remplir le combo 2 avec les nouveaux elements
 for(var i=0,j=1;i<listeprojet.length;i++){
  if(listeprojet[i][0] == selected_value){
   element = new Option(listeprojet[i][1], listeprojet[i][1]);
   combo_2.options[j] = element;
   j++;
  }
 }
 
}
</script>
</head>






<form name="frm" method="post" action="">
 Type projet,
 <select name="select" id="select" onchange="javascript:fillCombo()">
  <option value="">--Type Projet--</option>
        <option value="Application">Application</option>
        <option value="Site Web">Site Web</option>
        <option value="Conception">Conception</option>
        </select>,

----

 Type projet,
 <select name="select" id="projet">
        <option value="">--Choisir un projet--</option>
        </select>

</form>

</html>