AJAX:formulaire avec liste déroulante dynamique

AJAX:formulaire avec liste déroulante dynamique - HTML/CSS - Programmation

Marsh Posté le 20-04-2007 à 15:26:57    

bonjour a tous,
voila j'ai une page contenant une liste déroulante. Cette liste possede 3 option: "Renault", "Peugeot", "Citroen". Lorsque je clique sur renault ,ca m'affiche une autre liste déroulante, contenant "Clio" et "Laguna", et lorsque je clique sur peugeot, ca m'affiche "205" et "607"...
 
Ca marche bien, seulement j'aimerais utiliser la valeur contenu dans la 2eme liste déroulante (205 ,clio par exemple). Donc j'utilise un formulaire. Et a ce moment là, kan je clique sur la marque de la voiture (renault) ,j'obtient un message d'erreur de firebug:
>>action is not a function.
 
Sans formulaire, ca veut bien m'afficher la 2eme liste, et dans un formulaire ca ne marche plus :(
Savez vous d'ou vient cette erreur svp ?
 
Voici mon script contenant le formulaire:

Code :
  1. <html>
  2. <head>
  3.    <title>Page de test 1 Ajax</title>
  4.  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7.  <script type="text/javascript">
  8.   var objRequete = new XMLHttpRequest();
  9.   function action() {
  10.    // fonction appelée. param non utilisée ici
  11.     //var ma_variable=document.getElementById("..." ).value;
  12.     objRequete.open('get','traite2.php?select1='+document.getElementById("Sel1" ).value,true);
  13.     objRequete.onreadystatechange = fonction_Retour_Reponse;
  14.     objRequete.send(null);                     // envoie de la requete
  15.     return true; // la fonction retourne vrai (sans incidence ici - syntaxiquement correct)
  16.    }
  17.   function fonction_Retour_Reponse() {
  18.     if (objRequete.readyState==4) {
  19.       //alert(objRequete.responseText);
  20.                               document.getElementById("zonetext" ).innerHTML=objRequete.responseText;
  21.     }
  22.   }
  23.  </script>
  24. <FORM id="idForm6" method="POST">
  25.     <select name="select1" id="Sel1" onChange="action();">
  26.         <option value="0">renault</option>
  27.         <option value="1">peugeot</option>
  28.         <option value="2">citroen</option>
  29.     </select>
  30.  <p id="zonetext">
  31.         </p>
  32. <INPUT type="submit" value="Executer" name="ok">
  33. </FORM>
  34. <?php
  35. if (isset($_POST['voiture'])) {
  36.  echo "OK";
  37. }
  38. ?>
  39. </body>
  40. </html>


 
et voici le traitement php:
 

Code :
  1. <?php
  2. $renault=array("clio","laguna" );
  3. $peugeot=array("205","607" );
  4. $citroen=array("ax","bx" );
  5. if ($_REQUEST["select1"] == "0" ) {
  6. print("<SELECT NAME =\"voiture\">" ); //indication du nom de la variable qui sera envoyée
  7.       for($i=0;$i<sizeof($renault);$i++)
  8.        {
  9.            print("<OPTION VALUE = ".$renault[$i]."> ".$renault[$i]);
  10.           }
  11.          print("</SELECT>" );
  12. }
  13.  elseif ($_REQUEST["select1"] == 1) {
  14. print("<SELECT NAME =\"voiture\">" ); //indication du nom de la variable qui sera envoyée
  15.       for($i=0;$i<sizeof($peugeot);$i++)
  16.        {
  17.            print("<OPTION VALUE = ".$peugeot[$i]."> ".$peugeot[$i]);
  18.           }
  19.          print("</SELECT>" );
  20. }
  21. elseif ($_REQUEST["select1"] == 2) {
  22. print("<SELECT NAME =\"voiture\">" ); //indication du nom de la variable qui sera envoyée
  23.       for($i=0;$i<sizeof($citroen);$i++)
  24.        {
  25.            print("<OPTION VALUE = ".$citroen[$i]."> ".$citroen[$i]);
  26.           }
  27.          print("</SELECT>" );
  28. }
  29. ?>

Reply

Marsh Posté le 20-04-2007 à 15:26:57   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed