par
Sebe » 14 déc. 2006, 14:36
Bonjour,
Je ne suis pas certain d'être dans le bon forum bien que ce soit une question de fonction Javascript ... je suis désolè si c'est le cas !
Comme vous allez pouvoir le remarquer, je ne suis qu'un débutant de Javascript et la fonction en question a été faite en grande partie par
dans un autre post.
Déjà, voyons le problème tournant sur
mon site (d'essaies) !
Si vous remplissez le champs du temps sur 4', nous devrions récupérer une valeur de '200'm/minutes au lieu de '0.00205761316872428'm/minutes ... ce qui ne colle ni de loin, ni de près !
2 fonctions sont utilisées pour l'affichage:
// code repris du fichier PHP *************************************************
// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
if($tempsp != 0) return ($palier*$facteur/$tempsp);
return (false);
}
//Fin de la reprise ***********************************************************
// Test du champs temps
function verifTemps(chpTemps, v_field){
var tempTab = chpTemps.value.split(':');
var temps = 0;
for(i = 0; i < tempTab.length; i++){
// Conversion de la valeur en entier
var t = parseInt(tempTab[i]);
// Teste si la valeur est un chiffre
if(isNaN(t)){
alert('Seuls les chiffres sont acceptés');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(true);
}
// Teste si les minutes et (ou) les secondes
// sont comprises entre 0 et 59
if(i != 0 && tempTab[i] > 59){
alert('Les minutes ou les secondes ne peuvent exéder 59');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(false);
}
// Cumul du temps
}
temps = (( Number( tempTab[0] ) * 3600 ) + ( Number( tempTab[1] ) *60 ) + ( Number( tempTab[2] )) ;
alert(temps);
// Si cumul <= 0 return faux (invalide)
if(temps <= 0) {
alert('Le temps doit être supérieur ou égal à une seconde');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(true);
} else {
alert(v_field);
switch (v_field){
case 1 :
$palier = 800;
$facteur = 1/(24*60);
vitesse1 = vitesse(temps, $palier, $facteur);
document.forms.test.vitesse1.readonly = false;
document.forms.test.vitesse1.value = String( vitesse1 );
document.forms.test.vitesse1.readonly = true;
case 2 :
$palier = 800;
$facteur = 1/(24*60);
vitesse2 = vitesse(temps, $palier, $facteur);
document.forms.test.vitesse2.readonly = false;
document.forms.test.vitesse2.value = String( vitesse2 );
document.forms.test.vitesse2.readonly = true;
// Reste encore à travailler le reste
case 3 :
$palier = $palier3;
$facteur = 1/(24*60);
vitesse3 = vitesse(temps, $palier, $facteur);
document.forms.test.vitesse3.readonly = false;
document.forms.test.vitesse3.value = String( vitesse3 );
document.forms.test.vitesse3.readonly = true;
case 4 :
document.forms.test.vma. readonly = false;
document.forms.test.vma. value = "nouvelle_valeur";
document.forms.test.vma. readonly = true;
}
}
}
Je pense que le problème vient du fait que je n'utilise pas un temps décimal ! ? !
Vous avez des idées pour moi ?
Merci
Bonjour,
Je ne suis pas certain d'être dans le bon forum bien que ce soit une question de fonction Javascript ... je suis désolè si c'est le cas !
Comme vous allez pouvoir le remarquer, je ne suis qu'un débutant de Javascript et la fonction en question a été faite en grande partie par
dans un autre post.
Déjà, voyons le problème tournant sur [url=http://www.kain-buyere.be/component/option,com_cat/Itemid,101]mon site[/url] (d'essaies) !
Si vous remplissez le champs du temps sur 4', nous devrions récupérer une valeur de '200'm/minutes au lieu de '0.00205761316872428'm/minutes ... ce qui ne colle ni de loin, ni de près !
2 fonctions sont utilisées pour l'affichage:
[php]// code repris du fichier PHP *************************************************
// Fonction de calcul de la vitesse
function vitesse($tempsp, $palier, $facteur) {
if($tempsp != 0) return ($palier*$facteur/$tempsp);
return (false);
}
//Fin de la reprise ***********************************************************[/php]
[php] // Test du champs temps
function verifTemps(chpTemps, v_field){
var tempTab = chpTemps.value.split(':');
var temps = 0;
for(i = 0; i < tempTab.length; i++){
// Conversion de la valeur en entier
var t = parseInt(tempTab[i]);
// Teste si la valeur est un chiffre
if(isNaN(t)){
alert('Seuls les chiffres sont acceptés');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(true);
}
// Teste si les minutes et (ou) les secondes
// sont comprises entre 0 et 59
if(i != 0 && tempTab[i] > 59){
alert('Les minutes ou les secondes ne peuvent exéder 59');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(false);
}
// Cumul du temps
}
temps = (( Number( tempTab[0] ) * 3600 ) + ( Number( tempTab[1] ) *60 ) + ( Number( tempTab[2] )) ;
alert(temps);
// Si cumul <= 0 return faux (invalide)
if(temps <= 0) {
alert('Le temps doit être supérieur ou égal à une seconde');
chpTemps.value = '00:00:00';
chpTemps.focus();
return(true);
} else {
alert(v_field);
switch (v_field){
case 1 :
$palier = 800;
$facteur = 1/(24*60);
vitesse1 = vitesse(temps, $palier, $facteur);
document.forms.test.vitesse1.readonly = false;
document.forms.test.vitesse1.value = String( vitesse1 );
document.forms.test.vitesse1.readonly = true;
case 2 :
$palier = 800;
$facteur = 1/(24*60);
vitesse2 = vitesse(temps, $palier, $facteur);
document.forms.test.vitesse2.readonly = false;
document.forms.test.vitesse2.value = String( vitesse2 );
document.forms.test.vitesse2.readonly = true;
// Reste encore à travailler le reste
case 3 :
$palier = $palier3;
$facteur = 1/(24*60);
vitesse3 = vitesse(temps, $palier, $facteur);
document.forms.test.vitesse3.readonly = false;
document.forms.test.vitesse3.value = String( vitesse3 );
document.forms.test.vitesse3.readonly = true;
case 4 :
document.forms.test.vma. readonly = false;
document.forms.test.vma. value = "nouvelle_valeur";
document.forms.test.vma. readonly = true;
}
}
} [/php]
Je pense que le problème vient du fait que je n'utilise pas un temps décimal ! ? !
Vous avez des idées pour moi ?
Merci