onblur peut-il déclencher 2 évenements ?

Mammouth du PHP | 545 Messages

20 déc. 2006, 14:53

le problème peut, selon moi, se situer à plusieurs niveaux :
- le switch (v_field) qui ne passe jamais dans le case 1. Essaye d'afficher v_field pour en être sûr. NB : essaye de comparer v_field à une chaine de caractère ('1') et non pas un entier (1)
v_field passe dans la case 1 ... j'ai eu un retour avec alert
- la fonction vma() qui ne rend jamais la main
Comment peut-on le savoir ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 545 Messages

20 déc. 2006, 15:01

Salut,
Bonjour,

Dans cette ligne

Code : Tout sélectionner

tvma = vma(tempsp, $palier);
d'où sort la variable tempsp ???
Heuuuuuuuu ... eh bien comme je le disais, j'ai utilisé une fonction qui avait déjà fait ses preuves ! Comme je devais en faire une nouvelle avec les même variable mais un calcul différent, j'ai simplement apporté quelques modifications necessaires au calcul !

Note: Le calcul fonctionne, je l'ai testé !
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 15:18

- la fonction vma() qui ne rend jamais la main
Comment peut-on le savoir ?
Tu mets un alert() avant puis un alert() après ... ;)

D'ailleurs, ne fait pas alert(variable) mais plutôt alert("text"+variable) car si variable est vide, alert(variable) n'aura aucune action sous FF
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

20 déc. 2006, 15:39

Tu mets un alert() avant puis un alert() après ... ;)

D'ailleurs, ne fait pas alert(variable) mais plutôt alert("text"+variable) car si variable est vide, alert(variable) n'aura aucune action sous FF
Yessssss ... au moins on se rapproche du problème car, comme tu disais, il ne sort pas de la fonction vma !

J'ai fais ceci:
function calcvma(chpTemps, v_field)
{
         var temps = verifTemps(chpTemps);
         //alert(temps);
		 //alert(v_field);
         if (temps)
         {
               switch (v_field){
                    case 1 : 
          			$palier = document.forms.test.palier3.value;
					//alert($palier);
					alert("Les carottes sont cuites ?" + v_field);
					tvma = vma(temps, $palier);
          			alert("Les carottes sont cuites ?" + v_field);
					// alert(tvma);
					document.forms.test.tvma.readonly = false;
          			document.forms.test.tvma.value = String( tvma );
          			document.forms.test.tvma.readonly = true;
                    break;
              }
         }
}		
et je n'ai qu'une fois le message 'Les carottes sont cuites ?'!
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 15:42

Donc ... le soucis est dans la fonction vma ;)

Montre nous donc ce code
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

20 déc. 2006, 15:48

Voici les 2 series de fonctions:
C'est la 2e qui a un problème ... la 1er fonctionne à merveille mais a servit de modéle à la 2e !
// **************************** Fonction de calcul de la Vitesse en m/min ****************************
function vitesse(tempsp, $palier)
	{
		if(tempsp != 0)
     		{
			return ((Math.round((($palier/tempsp) / 60  ) * 100 )) / 100);
     		}
		else{
           return (false);
     		}
	} 

function calcVitesse(chpTemps, v_field)
{
         var temps = verifTemps(chpTemps);
         // alert(temps);
         if (temps)
         {
               switch (v_field){
                    case 1 : 
          			vitesse1 = (800 / Number(temps) / 60);
          			document.forms.test.vitesse1.readonly = false;
          			document.forms.test.vitesse1.value = String( vitesse1 );
          			document.forms.test.vitesse1.readonly = true;
                    break;
					
                    case 2 :
					$palier = 800;
					vitesse2 = vitesse(temps, $palier);
                    document.forms.test.vitesse2.readonly = false;
                    document.forms.test.vitesse2.value = String( vitesse2 );
                    document.forms.test.vitesse2.readonly = true;
                    break;
          
                    case 3 :
          			$palier = document.forms.test.palier3.value;
          			vitesse3 = vitesse(temps, $palier);
					document.forms.test.vitesse3.readonly = false;
          			document.forms.test.vitesse3.value = String( vitesse3 );
          			document.forms.test.vitesse3.readonly = true;
                    break;
              }
         }
}
// **************************** Fin de la fonction de calcul de la Vitesse en m/min ****************************




// **************************** Fonction de calcul de la VMA en km/h ****************************
// ne fonctionne pas !
function vma(temps, $palier)
{
	if(tempsp != 0)
     {
          return ((Math.round(($palier/tempsp)/10))/ 100);
     }else{
          return (false);
     }
} 

function calcvma(chpTemps, v_field)
{
         var temps = verifTemps(chpTemps);
         //alert(temps);
		 //alert(v_field);
         if (temps)
         {
               switch (v_field){
                    case 1 : 
          			$palier = document.forms.test.palier3.value;
					//alert($palier);
					alert("Les carottes sont cuites ?" + v_field);
					tvma = vma(temps, $palier);
          			alert("Les carottes sont cuites ?" + v_field);
					// alert(tvma);
					document.forms.test.tvma.readonly = false;
          			document.forms.test.tvma.value = String( tvma );
          			document.forms.test.tvma.readonly = true;
                    break;
              }
         }
}		
// **************************** Fin de la fonction de calcul de la VMA en km/h ****************************
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 15:54

Code : Tout sélectionner

Math.round(($palier/tempsp)
Encore un soucis de $ ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

20 déc. 2006, 16:00

Code : Tout sélectionner

Math.round(($palier/tempsp)
Encore un soucis de $ ;)
Je ne comprends pas car cette formule fonctionne dans la 1er serie de fonction !
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 16:19

alors, non seulement, je pense qu'il s'agit plus d'une largesse du JS d'autoriser les $, mais en plus, je viens de voir que "temsps" au lieu de "temps" dans le Maths.round() peut aussi expliquer ce genre d'erreur :P
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

20 déc. 2006, 16:30

alors, non seulement, je pense qu'il s'agit plus d'une largesse du JS d'autoriser les $, mais en plus, je viens de voir que "temsps" au lieu de "temps" dans le Maths.round() peut aussi expliquer ce genre d'erreur :P
Bon ben je dois m'incliner ... j'ai changer en étant persuadé que cela ne pouvait venir de là puisque cela fonctionnait dans la 1er fonction:
// **************************** Fonction de calcul de la VMA en km/h ****************************
// ne fonctionne pas !
function vma(temps, palier)
{
	if(temps != 0)
     {
          return ((Math.round((palier/temps)/10))/ 100);
     }else{
          return (false);
     }
} 

function calcvma(chpTemps, v_field)
	{
		var temps = verifTemps(chpTemps);
		//alert(temps);
		//alert(v_field);
		if (temps)
        	{
				switch (v_field){
                    case 1 : 
          			palier = document.forms.test.palier3.value;
					// alert(palier);
					alert("Les carottes sont cuites ?" + v_field);
					tvma = vma(temps, palier);
          			alert("Les carottes sont cuites ?" + v_field);
					// alert(tvma);
					document.forms.test.tvma.readonly = false;
          			document.forms.test.tvma.value = String( tvma );
          			document.forms.test.tvma.readonly = true;
                    break;
					}
			}
	}		
// **************************** Fin de la fonction de calcul de la VMA en km/h ****************************
ET CELA FONCTIONNE ... MERCI MERCI aussi à Ajoloca qui avait déjà soulevé le problème !

Merci pour tout
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 16:35

Re,
ET CELA FONCTIONNE ... MERCI MERCI aussi à Ajoloca qui avait déjà soulevé le problème !
@zeus -> grillé :langue:
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 545 Messages

20 déc. 2006, 16:47

Re,
ET CELA FONCTIONNE ... MERCI MERCI aussi à Ajoloca qui avait déjà soulevé le problème !
@zeus -> grillé :langue:
C'est pas bien de rire des petits copains de la classe !

Le fameux composant est ici ... évidement, je suis loin d'avoir terminé !

Encore merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 17:43

@zeus -> grillé :langue:
:evil:

Je ne sais pas ce qui me retient d'user malhonnêtement de mes pouvoirs de modérateur pour supprimer la précision de Sebe et la réponse de Ajoloca :-* :twisted: :langue:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 545 Messages

20 déc. 2006, 17:51

Je ne sais pas ce qui me retient d'user malhonnêtement de mes pouvoirs de modérateur pour supprimer la précision de Sebe et la réponse de Ajoloca :-* :twisted: :langue:
Pas facile d'être bon modérateur :tir2:
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 17:51

@zeus -> grillé :langue:
:evil:

Je ne sais pas ce qui me retient d'user malhonnêtement de mes pouvoirs de modérateur pour supprimer la précision de Sebe et la réponse de Ajoloca :-* :twisted: :langue:
Votre sagesse et honnêteté Maître! :agenouille:
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein