JAVASCRIPT- Appel fonction ds une fonction

Résolu/Fermé
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 - 28 mars 2008 à 14:59
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 - 28 mars 2008 à 16:11
Bonjour,

Sur ma page j'ai deux fonction javascript. Dans la deuxième fonction, j'ai besoin d'appeler la premiére.

function calculerTotal(p1){

blabla bla
blabla bla
blabla bla

}

function saisirValeur(){

bla bla bla
bla bla lba

//Appel de la 1er fonction
calculerTotal(p1);

}


Impossible d'appeler la premiére fonction, firefox me dit que total n'est pas une fonction.

Or la fonction calculerTotal marche correctement car je l'appelle dans la foulée lors de l'exécution de ma page et elle marche !

Existe t-il un mot clef pour déclarer une fonction publique si c'est sa ?

4 réponses

mike_d Messages postés 8 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 28 mars 2008 4
28 mars 2008 à 16:02
Déja tu devrais mettre var total=0 , ta variable n'est pas déclarée. Et tu as oublier un " dans ton appel ajax.
1
mike_d Messages postés 8 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 28 mars 2008 4
28 mars 2008 à 15:35
Salut. les appels de fonctions marche directement en javascript. Il doit y avoir une erreur dans le code. Est ce que tu peux le montrer?
0
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 8
28 mars 2008 à 15:38
Voila tout ce qu'il y a dans ma balise SCRIPT.
C'est dans la troisième fonction 'rentrerValeur()' que j'appelle la première 'total()'.

<script>


////////////////////////////////////////////////////////////////////////
function total(i){

	//i=i-1;
	
	total=0;
	for(j=1;j<i;j++){
	
		id='montant'+j;
		//alert(document.getElementById(id).innerHTML);
		total =  total + parseInt(document.getElementById(id).innerHTML) ;
	
	}

	document.getElementById('montantTotal').innerHTML = total + ' €';
}
////////////////////////////////////////////////////////////////////////////
function changerFour(idFour){


document.location.href = 'creerCommandeFour.php?four='+idFour;


}
////////////////////////////////////////////////////////////////////////////
function rentrerValeur(i, type){

	if(type==true){
		fin = ' gr';
	}else{
		fin = ' ';
	}
	
	id='appro'+i;
	qte=prompt("Saisir la quantité à commander","");

	if(qte==null){
		//Rien
	}else{
		document.getElementById(id).innerHTML=qte+fin; 
                ///APPEL////
		total(document.getElementById('iteration').value);
	}

}
/////////////////////////////////////////////////////////////////////////////

function ajoutArticle(){

	ref=document.getElementById('ref').value;
	idFour=document.getElementById('idFour').value;
	iteration = document.getElementById('iteration').value;
	
	//Appeler une fonction AJAX///////////////////////////////////////////
	  if(window.XMLHttpRequest) // Firefox 
		xhr_object = new XMLHttpRequest();
			
		 else {
			if(window.ActiveXObject) // Internet Explorer 
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
			else { // XMLHttpRequest non supporté par le navigateur 
				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
				return; 
			   }
			}
			
			//xhr_object.open("GET", "calculerPrix.php?idProd="+ref+'&grammes='+grammes,true);
			xhr_object.open("GET", "ajoutLigne.php?ref="+ref+"&idFour="+idFour+"&iteration="+iteration,true);
			xhr_object.send(null);
			
			xhr_object.onreadystatechange=function(){ 
			if(xhr_object.readyState == 4 && xhr_object.status == 200){ 
			eval(xhr_object.responseText); 
			}
			
		////////////////////////////////////////////////////////////////    
	
}
}

</script>
0
goldo Messages postés 72 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 juin 2010 8
28 mars 2008 à 16:11
Tu m'a mis la puce à l'oreille en parlant de cette variable total.

En effet j'avais une fonction qui s'appelait total et une variable qui s'appelle total également, et à cause de sa ba sa foire.

Franchement Merci ! Bon wE :D
0