Fonction d'évaluation

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction d'évaluation

par Sebe » 21 déc. 2006, 19:38

Perso ,je ne comprends pas tout .
A quoi te sert de fixer le readonly a false puis à true ?
(au passage ,je préfère grandement les document.getElementById , j'ai déja eu quelques soucis de compatibilité avec l'autre méthode)
Etant donné que je suis en 'période d'apprentissage', je veux bien quelques expliquations supplèmentaires !

Merci

par fgranjon » 21 déc. 2006, 19:25

Perso ,je ne comprends pas tout .
A quoi te sert de fixer le readonly a false puis à true ?
(au passage ,je préfère grandement les document.getElementById , j'ai déja eu quelques soucis de compatibilité avec l'autre méthode)
// **************************** Fonction d'évaluation de la récupération ****************************
function evalRecup(fcrecup, fcp3){
    var fcR = Number(fcrecup.value);
    // alert("La FC après 5 minutes de récupération est de " + fcR);
    var fcM = Number(fcp3.value);
    // alert("La FC du palier 3 est de " + fcM);
    var recup = " ";
    var orecup=document.getElementById('id_du_champs_recup');
    if (fcR < (fcM * 0.5652))  
        recup = "Excellente";
    else if (fcR < (fcM * 0.5815)) 
        recup = "Très bonne";
    else if (fcR < (fcM * 0.6033)) 
        recup = "Bonne";
    else if (fcR < (fcM * 0.6304)) 
        recup = "Moyenne";
    else if (fcR < (fcM * 0.6902)) 
        recup = "Mauvaise";
    else 
        recup = "Très mauvaise";
        
     orecup.setAttribute('readOnly',true);
     orecup.value = String( recup );
}
// **************************** Fin de la fonction d'évaluation de la récupération ****************************

par Sebe » 21 déc. 2006, 16:58

Voilà c'est dans la boîte ... merci pour les ';' que j'avais oublié !
Donc voici ma fonction:
// **************************** Fonction d'évaluation de la récupération ****************************
function evalRecup(fcrecup, fcp3){
	var fcR = Number(fcrecup.value);
	// alert("La FC après 5 minutes de récupération est de " + fcR);
	var fcM = Number(fcp3.value);
	// alert("La FC du palier 3 est de " + fcM);
	var recup = " ";
	if (fcR < (fcM * 0.5652)) { 
		recup = "Excellente";
		//alert ("Eval récup Excellente");
		document.forms.test.recup.readonly = false;
        document.forms.test.recup.value = String( recup );
        document.forms.test.recup.readonly = true;
		}
	else if (fcR < (fcM * 0.5815)) {
		recup = "Très bonne";
		//alert ("Eval récup Très bonne");
		document.forms.test.recup.readonly = false;
        document.forms.test.recup.value = String( recup );
        document.forms.test.recup.readonly = true;
		}
	else if (fcR < (fcM * 0.6033)) {
		recup = "Bonne";
		//alert ("Eval récup Bonne");
		document.forms.test.recup.readonly = false;
        document.forms.test.recup.value = String( recup );
        document.forms.test.recup.readonly = true;
		}		
	else if (fcR < (fcM * 0.6304)) {
		recup = "Moyenne";
		//alert ("Eval récup Moyenne");
		document.forms.test.recup.readonly = false;
        document.forms.test.recup.value = String( recup );
        document.forms.test.recup.readonly = true;
		}
	else if (fcR < (fcM * 0.6902)) {
		recup = "Mauvaise";
		//alert ("Eval récup Mauvaise");
		document.forms.test.recup.readonly = false;
        document.forms.test.recup.value = String( recup );
        document.forms.test.recup.readonly = true;
		}
	else {
		recup = "Très mauvaise";
		//alert ("Eval récup est Très mauvaise");
		document.forms.test.recup.readonly = false;
        document.forms.test.recup.value = String( recup );
        document.forms.test.recup.readonly = true;
		}
	//alert ("Recup est "+ recup);	
	}
// **************************** Fin de la fonction d'évaluation de la récupération ****************************
Vous ne voyez pas de problème pouvant en découler ?

Merci

par fgranjon » 21 déc. 2006, 14:31

Oublie pas les point virgule après tes alert
function evalRecup(fcrecup, fcp3){
    var fcR = Number(fcrecup.value);
    alert("La FC après 5 minutes de récupération est de " + fcR);
    var fcM = Number(fcp3.value);
    alert("La FC du palier 3 est de " + fcM);
    // if ((fcrecup==0) || (fc3==0)) return 0;

if (fcR < (fcM * 0.5652)) 
  alert ("Eval récup Excellente");
else if (fcR < (fcM * 0.5815)) 
  alert ("Eval récup Très bonne");
else if (fcR < (fcM * 0.6033)) 
  alert ("Eval récup Bonne");
else if (fcR < (fcM * 0.6304)) 
  alert ("Eval récup Moyenne");
else if (fcR < (fcM * 0.6902)) 
  alert ("Eval récup Mauvaise");
else 
  alert ("Eval récup est impossible");

par Sebe » 21 déc. 2006, 14:15

Et bien ne pourrais tu pas utilisé des if et else if ?
Ok, c'est dans la boîte !
function evalRecup(fcrecup, fcp3){
	var fcR = Number(fcrecup.value);
	alert("La FC après 5 minutes de récupération est de " + fcR);
	var fcM = Number(fcp3.value);
	alert("La FC du palier 3 est de " + fcM);
	// if ((fcrecup==0) || (fc3==0)) return 0;

if (fcR < (fcM * 0.5652)) alert ("Eval récup Excellente");
else if (fcR < (fcM * 0.5815)) alert ("Eval récup Très bonne")
else if (fcR < (fcM * 0.6033)) alert ("Eval récup Bonne")
else if (fcR < (fcM * 0.6304)) alert ("Eval récup Moyenne")
else if (fcR < (fcM * 0.6902)) alert ("Eval récup Mauvaise")
else alert ("Eval récup est impossible");
Pas d'autres problème avant que je ne devellope ?

Merci

par fgranjon » 21 déc. 2006, 13:18

Et bien ne pourrais tu pas utilisé des if et else if ?

par Sebe » 21 déc. 2006, 13:14

Salut,

Quel(s) conseille(s) me donnes-tu parce que je ne vois pas de porte de sortie ?

Merci

Re: Je passe à côté de qqch !

par zeus » 21 déc. 2006, 12:54

Salut,

Je ne pense pas que cette syntaxe soit très appréciée par le JS :-k
switch (fcR, fcM)
Je sais que c'est une ancienne fonction PHP mais je ne suis pas sûr que le JS soit d'accord :P

Je passe à côté de qqch !

par Sebe » 21 déc. 2006, 12:12

Salut,

Décidement, je ne trouve pas la solution ... je dois passer à coté de quelque chose car je n'ai même pas les alerts dans le 'switch' qui s'affiche:
function evalRecup(fcrecup, fcp3){
	var fcR = Number(fcrecup.value);
	alert("La FC après 5 minutes de récupération est de " + fcR);
	var fcM = Number(fcp3.value);
	alert("La FC du palier 3 est de " + fcM);
	// if ((fcrecup==0) || (fc3==0)) return 0;
		switch (fcR, fcM)
		{
		case (fcR < (fcM * 0.5652)): // recup = "Excellente";
		alert ("Eval récup Excellente");
		break;
		case (fcR < (fcM * 0.5815)): // recup = "Très bonne";
		alert ("Eval récup Très bonne");
		break;
		case (fcR < (fcM * 0.6033)): // recup = "Bonne";
		alert ("Eval récup Bonne");
		break;
		case (fcR < (fcM * 0.6304)): // recup = "Moyenne";
		alert ("Eval récup Moyenne");
		break;
		case (fcR < (fcM * 0.6902)): // recup = "Mauvaise";
		alert ("Eval récup Mauvaise");
		break;
		default: // recup = "Très mauvaise";
		alert ("Eval récup est impossible");
		}
    } 
Comment est-ce possible ?

Merci

par Sebe » 20 déc. 2006, 20:35

Suis-je dans le bon pour faire mon test ?
function evalRecup(fcrecup, fcp3){
	var fcR = Number(fcrecup.value);
	alert("La FC après 5 minutes de récupération est de " + fcR);
	var fcM = Number(fcp3.value);
	alert("La FC du palier 3 est de " + fcM);
	if ((fcrecup==0) || (fc3==0)) return 0;
		switch (fcrecup)
		{
		case (fcM * 0.5652): return "Excellente";break;
		case (fcM * 0.5815): return "Très bonne";break;
		case (fcM * 0.6033): return "Bonne";break;
		case (fcM * 0.6304): return "Moyenne";break;
		case (fcM * 0.6902): return "Mauvaise";break;
		default: return "Très mauvaise";break;
		}
    } 
Merci

par Ajoloca » 20 déc. 2006, 18:49

Logiquement non, car tu recupères dans ta fonction

Code : Tout sélectionner

var fcM = Number(fcp3.value);
pour tes calculs.

par Sebe » 20 déc. 2006, 18:45

J'ai fait la transformation dans le champs 'input' mais est-ce que je dois faire cela aussi dans la fonction ... cela fonctionne déjà !

Merci

par Ajoloca » 20 déc. 2006, 18:34

Re,
Change ceci

Code : Tout sélectionner

evalRecup(fcrecup, fcp3);
par

Code : Tout sélectionner

evalRecup(fcrecup, document.getElementById('fcp3'));

par Sebe » 20 déc. 2006, 18:27

Tu crois qu'a ce niveux il connait fcp3 ???
Oui, la valeur dans l'alert correspond !
Je doute que ça fonctionne.
Mais que tu doute bien ... je ne sais pas comment renvoyer la valeur :roll:
function evalRecup(fcrecup, fcp3){
	var fcR = Number(fcrecup.value);
	alert("La FC après 5 minutes de récupération est de " + fcR);
	var fcM = Number(fcp3.value);
	alert("La FC du palier 3 est de " + fcM);
	if(fcR == 0 || fcp3 == 0) return(" "); //Pas de message d'erreur !
    if(fcR < (fcM * 0.5652)) return("Excellente");
    if(fcR < (fcM * 0.5815)) return("Très bonne");
    if(fcR < (fcM * 0.6033)) return("Bonne");
    if(fcR < (fcM * 0.6304)) return("Moyenne");
    if(fcR < (fcM * 0.663)) return("Médiocre");
    if(fcR < (fcM * 0.6902)) return("Mauvaise");
    return("Très mauvaise");
    } 
Si tu as un tuyau ... Merci

par Ajoloca » 20 déc. 2006, 18:21

Stop, y'a des choses qui commence à entrer !
<input name="fcrecup" type="text" id="fcrecup" value="0" size="3" maxlength="3" onblur="verifFc(this); evalRecup(fcrecup, fcp3);" />
Merci
Je doute que ça fonctionne.

Tu crois qu'a ce niveux il connait fcp3 ???