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 :

Erreur : Is not a function ?


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut Erreur : Is not a function ?
    Bonjour à tous!
    Je me tourne vers vous car je rencontre une erreur dans une de mes pages PHP, due à une fonction Javascript :
    J'essaye d'appeler une fonction appelée "Vote", et la console d'erreur de firefox m'indique "erreur, Vote is not a function".
    J'ai beau tout retourné, tout re-faire, ça ne veut vraiment pas marcher, et je ne vois pas d'ou vient le soucis...
    Si quelqu'un pouvait m'aider, je lui en serai reconnaissant
    Je vous mets le code des pages :

    Code PHP qui génère l'HTML :
    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
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<script type="text/javascript" src="scripts/script_participation_sondage.js"></script>
    		<title>D&eacute;tail du projet tagada</title>
    	</head>
    	<body>
    		<div>
    			<a href="./deconnexion.php">Se d&eacute;connecter</a>
    		</div>
    		<div>
    			<p>Informations relatives au projet s&eacute;lectionn&eacute; :</p>
    			<p>Id&eacute;e du projet : renovation</p>
    			<p>Theme : test1</p>
    			Presentation du projet : longue test1
    			<p>Voulez-vous participer &agrave; ce projet ?</p>
    		</div>
    		<div>
    			<form name="vote_sondage" method="POST" onsubmit="vote(this,'1','1');">
    				<select name="vote" class="obligatoire">
                    	<option value="" selected="selected">Fa&icirc;tes votre voix</option>
                    	<option value="pour">voter pour</option>
                    	<option value="contre">voter contre</option>
    					<option value="blanc">s'abstenir</option>
    				</select>
    				<input type="submit" name="ok" value="valider le vote" />
    			</form>
    		</div>
    		<div id="load_ajax"></div>
    	</body>
    </html>
    (ce code est généré par une page PHP, qui fait des includes, si il faut je peux détailler ce code la aussi)

    et le Javascript :

    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
     
    function vote(select,id_sondage,id_user)
    {
    	if(!confirm("êtes-vous sur?")) {
    		select.vote.options[0].selected = true ;
    		return false ;
    	}
    	else {
    		var choix_vote = select.vote.value ;
    		//<==========================Création de la requête XMLHttp ====================================>
    		var xhr=null;
     
    		if (window.XMLHttpRequest)
    		{
    	        xhr = new XMLHttpRequest();
    	    }
    	    else if (window.ActiveXObject)
    	    {
    	        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    	    }
    		//<==========================================================================================>
    		//on définit la fonction qui va être exécuté à chaque retour de serveur
    		xhr.onreadystatechange = function() { alert_ajax() ; } ;
     
    		xhr.open("POST","./AJAX/valid_vote.php", true) ;//on définit quoi utiliser et comment
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');//on rajoute le header indispensable pour les données envoyées en POST
    		xhr.send("vote="+choix_vote+"&id_sondage="+id_sondage+"&id_user="+id_user) ;//et on envoi la requêtes avec les paramètres POST
     
    		function alert_ajax(){ //fonction appellée à chaque changement d'état du serveur
    			if (xhr.readyState ==4) {
    				var response = xhr.responseText ;
    				if (response ==0) { //si le vote a été validé de manière correcte
    					document.getElementById('load_ajax').innerHTML = "Votre vote a bien été pris en compte" ;
    					document.getElementById('load_ajax').setAttribute("class","free");
    				}
    				else if (response ==1) { //sinon on affiche une erreur de vote
    					document.getElementById('load_ajax').innerHTML = "Une erreur est apparue durant le vote, veuillez re-essayer" ;
    					document.getElementById('load_ajax').setAttribute("class","used");
    				}
    			}
    		}
    	}
    }
    Voila, si il manque des choses, ou que des explications ne sont pas claires, je suis prêt à répondre
    merci d'avance!

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Salut
    je me permet une petite remarque plus d'ordre fonctionnel :

    tu déclare ta méthode comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function vote(select,id_sondage,id_user){...}
    hors, lors de l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="vote(this,'1','1');
    this , renvoi ton formulaire et non pas ta balise select ( j'ai regardé le code après effectivement tu travailles bien sur le form et non le select mais niveau nomenclature on s'y perd ...

    parenthèse faite, as tu essayé de changé de nom de méthode ?
    car tu appels ta méthode vote , mais tu as ta balise sélect qui se prénomme vote également ... à tester

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="scripts/script_participation_sondage.js"></script>
    Tu es sûr du chemin ?
    Si oui, essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="./scripts/script_participation_sondage.js"></script>

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par le_chomeur Voir le message

    parenthèse faite, as tu essayé de changé de nom de méthode ?
    car tu appels ta méthode vote , mais tu as ta balise sélect qui se prénomme vote également ... à tester
    il y a des chances que cela vienne de là car :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select.vote.options[0].selected = true ;

    par contre ta fonction ne retourne jamais true du coup je me demande si ton formulaire est bien envoyé au serveur.

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Bonjour à tous,
    Désolé si je ne réponds pas vite, mais je suis actuellement en cours^^

    Mais vous m'avez indiqué la bonne solution, c'était tout simplement parce que le select avait pour nom "vote" aussi, je viens de le changer, et ca marche

    Je vous remercie.

    pour ce qui est du fait de récupérer le formulaire en paramètre dans la fonction, c'était provisoire le temps que je résolve ce soucis, je vais appliquer la fonction sur le onchange du select.
    Merci beaucoup à vous tous !
    J'applique le tag résolu à la discussion
    @+

  6. #6
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    de rien ^^

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

Discussions similaires

  1. Erreur: $ is not a function
    Par Pragmatik225 dans le forum AngularJS
    Réponses: 1
    Dernier message: 15/12/2014, 10h15
  2. erreur : R.doRemove is not a function
    Par donuts dans le forum Ext JS / Sencha
    Réponses: 8
    Dernier message: 27/05/2010, 10h29
  3. 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
  4. Erreur : document.test.submit is not a function
    Par King_T dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 16/05/2008, 23h09
  5. [AJAX] erreur: is not a function avec liste déroulante
    Par dr_octopus74 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2007, 13h53

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