champs_dynamiques

Petit nouveau ! | 3 Messages

08 janv. 2016, 11:48

Salut à tous.

je suis en train de faire un formulaire pour la gestion d'un centre médical. j ai créé des fonctions qui me permettront d afficher d'autres champs dès qu'on sélectionne l'un des éléments de la première liste.

En clair dès qu'on sélectionnera un élément au niveau du type de médicament, automatiquement tous les médicaments en rapport avec ce type de médicament s'afficheront dans le second champ où on choisira le médicament voulu. Mais le problème avec mon formulaire,c'est que quand je sélectionne le type de médicament je n ai aucun champ qui s'affiche.
<?php
    include '../connexion.php';
    require_once('../session/pythagore1.php');
?>
<!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=utf-8" />
<title>.:: Enrégistrement médicament  ::.</title>
<link href="../images/2.jpg" rel="shorcut icon" type="image/x*icon"/>
<link rel="stylesheet" type="text/css" href="lien_gestion.css">
<script language="javascript">
//Création des fonctions
function verif(){
    if(document.layers){
        formulaire=document.forms.monFormulaire;
    }
    else{
        formulaire=document.monFormulaire;
    }
}
function verifchoixType(){
    verif();
    if(formulaire.choixType.value==="0")
    {
    alert('Veuillez choisir un type!');
    formulaire.choixType.focus();
    }
}
var medicaments=new Array();
medicaments=new Array();
medicaments[0]=new Array("Ampiciline","Benzylp&ecute;niciline");
medicaments[1]=new Array("Parac&acute;tamol","Cotrimoxazole");
medicaments[2]=new Array("Benzylbenzoate","Talc");
function remplirMedicament(code){
  verif();
  var lesMedicaments=medicaments[code];
  if(code>0)
  {
      formulaire.choixMedicament.options.length;
      for(i=0;i<lesMedicaments.length;i++)
      {
          formulaire.choixMedicament.options[i].value=lesMedicaments[i];
          formulaire.choixMedicament.options[i].text=lesMedicaments[i];
      }
      document.monFormulaire.choixMedicament.options.selectedIndex=0;
  }
  else{
      formulaire.choixMedicament.options.length=1;
      formulaire.choixMedicament.options[0].value=0;
      formulaire.choixMedicament.options[0].text="--choisissez un m&eacute;dicament--";
  }
}  
</script>
</head>
<body bgcolor="#fff">
        <div align="center" class="style2"><strong><h3> Ajouter un m&eacute;dicament</h3></strong></div>
        <form name="monFormulaire" action="insert_medic.php" method="post">
<p>&nbsp;</p>
        <p>&nbsp;</p>
            <table width="800" height="400" align="center" bgcolor="#F3F3F3" style="padding:1%; margin-bottom:2%;">
               <tr>
                   <td align="right"  class="champ_texte"><font color="#FF0000"></font> M&eacute;dicament :</td>
              <td width="539" align="left"><table width="143" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td><span class="champ_texte2">Type : &nbsp;</span><br />
                    <select name="choixType" class="champ_input" id="typemedic" onchange="remplirMedicament(this.options[this.selectedIndex].value);" required="required">
                        <option value="0" selected>--Choisir le type</option>
                        <option value="1" >Injectable</option>                     
                        <option value="2" >Oral</option>
                        <option value="3" >Externe</option>
                    </select></td>
                    <td width="50">&nbsp;</td>
                  <td width="150" id="cellmedic"></td>
            </tr>
              </table></td>
            </tr>
                <tr>
                    <td><div align="right" class="champ_texte">
                            <div align="right">Prix unitaire : &nbsp;</div>
                        </div>
                    </td>
                    <td>&nbsp;
                        <input name="pu" type="number" size="30" required/></td>
                </tr>
                <tr>
                    <td><div align="right" class="champ_texte">
                            <div align="right">Quantit&eacute; : &nbsp;</div>
                        </div>
                    </td>
                    <td>&nbsp;
                    <input name="qte" type="number" size="30" required/></td>
                </tr>
                <tr>
                          <td><div align="right" class="champ_texte">
                                   <div align="right">Prix total : &nbsp;</div>
                          </div></td>
                          <td>&nbsp;
                              <input name="pt"  value="qte*pu" type="number" size="30" required/></td>
    </tr>
<tr>
            <td><div align="right" class="champ_texte">
                    <div align="right">Date de peremption : &nbsp;</div></div></td>
            <td>&nbsp;
<?php
echo "<select name=\"jourperemption\">";
for ($i = 1; $i < 32; $i++) {
    echo "<option value=\"$i\">$i</option>";
}
echo "</select>&nbsp;&nbsp;";
echo "<select name=\"moisperemption\">";
for ($i = 1; $i < 13; $i++) {
    echo "<option value=\"$i\">$i</option>";
}
echo "</select>&nbsp;&nbsp;";
echo "<select name=\"anneeperemption\">";
for ($i = 2000; $i < 2020; $i++) {
    echo "<option value=\"$i\">$i</option>";
}
echo "</select>";
?>
            </td>
        </tr>
         <tr>
<td><div align="right"><span class="Style29"><span class="Style29"></span></span></div></td>
                          <td><input name="valider" type="submit" value="valider" />
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                         <input name="annuler" type="reset" value="annuler" />                          </td>
                        </tr>
    </table>
</form>
</body>
</html>
<?php
// deconnexion de la base
mysqli_close($connex);

Mammouth du PHP | 2703 Messages

08 janv. 2016, 18:19

la variable formulaire n'est déinie que dans des fonctions, et non pas à l'extérieur des fonctions, je me demande si cela peut marcher.
tu utilises formulaire.choixMedicament alors qu'il n'existe pas de select choixMedicament donc tu fais des actions sur quelque chose qui n'existe pas.