Probleme sur formulaire

Résolu
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
 Orkaell -
Bonjour,
J'ai un petit problème sur mon formulaire au niveau des calculs, comment faire pour que si le total de mon formulaire et inferieur a 60 on rajoute 5 au total
mais si le resultat est supérieur a 60 on garde le total de départ.

Je mets ce bout de code car le code intégral est très long.
 
function total_com()
{

tot = 0;

if (document.acheter2.totsaut.value != "") {
tot = tot + parseInt(document.acheter2.totsaut.value);
 }
 else
 { tot = tot;}
 tot= tot + acompte();
document.acheter2.acompte.value = 30*document.acheter2.nbsaut.value + acompte();
document.acheter2.solde.value = tot-30*document.acheter2.nbsaut.value-acompte();
return tot;
}

Si quelqu'un pouvait m'aider ça serait vraiment cool :)
Je vous remercie par avance :)

66 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
je crois que j'm'ai trompé !
je n'ai jamais utilisé cette fonction...
function total(val)
{
	if ((typeof val) == 'number')
	{
		if (val < 60)
		{
			return val + 5;
		}
		return val;
		}
	return 0;
	}
} 
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
et pour forcer la valeur de retour en type Double ça doit être 'parseDouble()'.
function total(val)
{
if ((typeof val) == 'number')
{
if (val < 60)
{
ret = val + 5;
}
ret = val;
}
ret = 0;
}
return parseDouble(ret);
}
0
ilan27 Messages postés 394 Date d'inscription   Statut Membre Dernière intervention   36
 
Essaye comme ceci: (et les autres fonctions sont de quel ordre? tu es sûre qu'elles tournent bien?)

function total(val)
{
if (val < 60.0)
{
return parseDouble(val + 5.0);
}
else
{
return parseDouble(val);
}
}

function total_com()
{
tot = 0.0;
if (document.acheter2.totsaut.value != "") {
tot = tot + parseInt(document.acheter2.totsaut.value);
}
else
{ tot = tot;}
tot= total(tot) + acompte();
document.acheter2.acompte.value = 30*document.acheter2.nbsaut.value + acompte();
document.acheter2.solde.value = tot-30*document.acheter2.nbsaut.value-acompte();
return tot;
}
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Bouhh ça ne marche tjs pas... :-(
quand je mets ces codes les totaux ne s'affichent plus.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

en fait 'parseDouble()' n'est pas une fonction JS, il faut utiliser 'parseFloat()'.
voici une version qui fonctionne, j'ai adapté un peu.
et voila le Javascript.

par contre tu ne testes pas la valeur d'entrée donc si tu saisies des lettres à la place de la valeur : ça plante !
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
je viens de tester ta proposition dalida et les résultats ne s'affichent plus ! :-(
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
oui désolé je faisais des modifs et j'ai mis en ligne une version qui ne fonctionnait pas !
tu peux essayer à nouveau, c'est corrigé !
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai essayé tjs pareil les totaux ne s'affichent plus ! :-(

Je commence a desespérer....
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
vide le cahe de ton navigateur.
il y a une 'alert' (boite de dialogue) qui s'affiche.
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Les résultats s'affichent dans IE mais pas dans FF mais le pb des centimes n'est tjs pas réglé
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
tu parles de mon exemple ?
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
non qd j'integre ton dernier code proposé dans mon formulaire
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
il faut adapter !!!
je ne sais pas comment tu as organisé ton code !
il faut que tu remplaces 'parseInt' par 'parseDouble' et pour attribuer des valeurs il faut utiliser 'document.getElementById()'.
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai fait ça :
function total(val)
{
	if (val < 60.0)
	{
		return parseFloat(val + 5.0);
	}
	else
	{
		return parseFloat(val);
	}
}

function total_com()
{
	tot = 0.0;
	if (document.getElementById('totsaut').value != "") {
		tot = tot + parseFloat(document.getElementById('totsaut').value);
	}
	else
	{
		tot = tot;
	}
	tot= total(tot) + acompte();
	document.getElementById('acompte').value = 30*document.getElementById('nbsaut').value + acompte();
	document.getElementById('solde').value = tot-30*document.getElementById('nbsaut').value - acompte();

	return tot
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
et 'acompte()' retourne quoi ?
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai ça apres le code donné audessus

function acompte()
{
	return 10;
}
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
mais dans ton code à toi il y avait bien une fonction 'acompte()' ???!!!

j'ai ajouté ça car il n'y avait rien dans ton code !!!

dis moi exactement ce que tu as comme '<input>' dans ton formulaire, ce que tu attends comme valeurs saisies et les calculs qu'il faut effectuer.

0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Il y a plein de input et plein de valeur a récupérer...
Je peux peut etre t'envoyer le fichier complet par mail , ça serait plus simple non ?
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai ça en code
 <p align="right">Total de ma commande :  </p>
</td>
<td width="80" bgcolor="#FAFAFA" height="36" valign="middle">
<p align="right"><input type="text" name="total" readonly="true" size="6" onfocus="total_com()">€</p></td></tr>
 </table>

<table width="100%" cellpadding="0" cellspacing="0" height="32" style="border-width:1; border-color:white; border-style:dotted;">
 <tr> <td width="88%" bgcolor="#FAFAFA" height="37" valign="middle">
<p align="right">Acompte et frais versés à la commande :  </p></td>
<td width="80" bgcolor="#FAFAFA" height="37" valign="middle">
<p align="right"><input type="text" name="acompte" readonly="true" size="6" value="30">€</p>
0
Orkaell Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai ça que j'ai abrégé car c'est assez long
function acompte() {
valac=0;
	if (document.acheter2.totcarteA.value != "") {
valac =  valac + parseInt(document.acheter2.totcarteA.value);
}
else 
{ valac = valac; }
if (document.acheter2.totcarteB.value != ""){
valac=  valac + parseInt(document.acheter2.totcarteB.value);
}
else
{ valac =valac;}
return valac;	
}
0