IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] erreur: is not a function avec liste déroulante


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Points : 33
    Points
    33
    Par défaut [AJAX] erreur: is not a function avec liste déroulante
    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 ?

    le script qui contient le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <html>
    	<head>
    		  <title>Page de test 1 Ajax</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    	</head>
    	<body>
    		<script type="text/javascript">
    			var objRequete = new XMLHttpRequest();
     
    			function action(param) {
    				// fonction appelée. param non utilisée ici
    					//var ma_variable=document.getElementById("...").value;
     
    					objRequete.open('get','traite2.php?select1='+document.getElementById("Sel1").value,true);	
    					objRequete.onreadystatechange = fonction_Retour_Reponse;
    					objRequete.send(null);	                    // envoie de la requete
    					return true; // la fonction retourne vrai (sans incidence ici - syntaxiquement correct)
    			 }
     
    			function fonction_Retour_Reponse() {
    					if (objRequete.readyState==4) {
    							//alert(objRequete.responseText);
                                		document.getElementById("zonetext").innerHTML=objRequete.responseText;
    					}
    			}
     
    		</script>
    <FORM id="idForm6" method="POST">
     
        <select name="select1" id="Sel1" onChange="action('test');">
            <option value="0">renault</option>
            <option value="1">peugeot</option>
            <option value="2">citroen</option>
        </select>
    	 <p id="zonetext">
            </p>
    <INPUT type="submit" value="Executer" name="ok">
    </FORM>
    <?php
            if (isset($_POST['voiture'])) {
                    echo "OK";
            } 
    ?>
    </body>
    </html>
    le php qui répond:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?php
            $renault=array("clio","laguna");
            $peugeot=array("205","607");
            $citroen=array("ax","bx");
            
            if ($_REQUEST["select1"] == "0") {
            
            print("<SELECT NAME =\"voiture\">"); //indication du nom de la variable qui sera envoyée
                  for($i=0;$i<sizeof($renault);$i++)
                  {
                            print("<OPTION VALUE = ".$renault[$i]."> ".$renault[$i]);
                  }
                  print("</SELECT>");
            }
            elseif ($_REQUEST["select1"] == 1) {
            
            print("<SELECT NAME =\"voiture\">"); //indication du nom de la variable qui sera envoyée
                  for($i=0;$i<sizeof($peugeot);$i++)
                  {
                            print("<OPTION VALUE = ".$peugeot[$i]."> ".$peugeot[$i]);
                  }
                  print("</SELECT>");
            }
            elseif ($_REQUEST["select1"] == 2) {
            
            print("<SELECT NAME =\"voiture\">"); //indication du nom de la variable qui sera envoyée
                  for($i=0;$i<sizeof($citroen);$i++)
                  {
                            print("<OPTION VALUE = ".$citroen[$i]."> ".$citroen[$i]);
                  }
                  print("</SELECT>");
            }
    ?>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    2 raisons aussi valables l'une que l'autres :
    * ta fonction n'est pas déclarée dans le head, mais dans le corps de la page : fonctionnement "aléatoire"
    * "action" est un mot réservé (propriété de <form>) : it is not a function, but a property

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Points : 33
    Points
    33
    Par défaut
    merci beaucoup E.Bzz, c'etait bien ca le soucis, pas de chance il fallai que je choisisseu n nom de fonction qui colle pas lol.
    a bientot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur : could not find driver avec PDO sur free
    Par Patr77 dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 25/03/2015, 10h36
  2. Erreur: $ is not a function
    Par Pragmatik225 dans le forum AngularJS
    Réponses: 1
    Dernier message: 15/12/2014, 10h15
  3. Réponses: 2
    Dernier message: 25/07/2011, 07h57
  4. Erreur : Is not a function ?
    Par DanTesS dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/12/2008, 11h32
  5. Erreur: createCaption not a function
    Par *.Har(d)t dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/11/2008, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo