Probleme sur formulaire

Résolu
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 :)
Configuration: Windows XP
Firefox 2.0.0.7

66 réponses

Résumé de la discussion

Le problème porte sur l'application d'une majoration de 5 au total d'un formulaire lorsque le total calculé est inférieur à 60, sinon le total initial doit être conservé. Plusieurs propositions évoquent l'utilisation correcte de parseInt ou parseFloat et l'appel de la fonction au bon endroit, avec une logique qui applique +5 lorsque le total est inférieur à 60. D'autres conseils recommandent de clarifier les scénarios (acompte, pas acompte, soldes, quantités) et de dériver les actions principales et redondantes avant de coder les fonctions. Pour la pratique, une version propose d'utiliser parseFloat ou des valeurs numériques via des identifiants DOM et de renvoyer le résultat sous forme numérique pour éviter les erreurs de centimes.

Bobot (l’IA à votre service)
  1. WOW ça marche !!!!! :-)))
    Je viens de rentrer chez moi et j'ai de suite essayé tes modif et ça marche nickel !! :-)))
    WOW je suis trop contente merci beaucoup !! ;-))

    MERCI de ton aide précieuse ! ;-)

    Je te souhaite un bonne nuit :)
    1. Contributeur
      salut,

      essaie de modifier la fonction 'total_com()'.
      function total_com()
      {
      	tot = 0.0;
      	if (document.getElementById('totsaut').value != "") {
      		tot = tot + parseFloat(document.getElementById('totsaut').value);
      	}
      	tot = total(tot + acompte());
      	return parseFloat(tot);
      }	
      
      1. Bonjour,
        Pus personne pour m'aider ? :-s
        Je galère encore et tjs pour la même chose... :-(
        1. Que le solde soit négatif non c'est pas normal, et je voudrais arriver a ce que le >60 = +5 soit applique sur le total et non sur le 1er choix seulement.
          1. Je n'ai pas compris: tu veux que ça ne marche que pour la première option ou c'est justement le problème? Et c'est quoi ce que tu appelles la première option?
            Par ailleurs, j'ai jeté un coup d'oeil, essayé, et on m'a affiché un solde négatif, c'est normal?
            1. Bonjour,

              Je viens de me rendre compte qu'il y a un problème dans la fonction qu'on a rajouté pour les 5€ de frais de port
              Vous pouvez m'aider ? ça fait qq jours que je tourne en rond... :-(

              En fait la fonction >60 on rajoute + 5 ne fonctionne seulement qu'avec la 1ere option choisie. et pour les autres options on a automatiquement 5 en plus même si la commande dépasse les 60€

              Vous avez une idée d'où cela peut venir ?
              1. C'est bon j'ai trouvé l'erreur ! et tout est nickel a present !! WOW !! trop contente !! :-)))
                Je vous remercie tous les 2 !!! et vous fait un gros bisous !!!! :)))))

                Merci merci beaucoup !!! ;-)
                1. arghh.... mais ça peut venir d'ou ce probleme, car des fois ça calcule tres bien et des fois c'est aps ça ! :-s
                  alors qu'au debut tout etait juste
                  1. Contributeur
                    salut,

                    ça sent surtout l'erreur de calcul !
                    dans ton il vaudrait peut être mieux commencer par écrire tous les scénarios sur une feuille (acompte, pas acompte, soldes, quantités) et d'en déduire les actions principales et les actions redondantes pour ensuite coder les fonctions.
                    1. Bonjour :)

                      Bon alors les résultats s'affichent et avec des virgules !!! un grand merci a vous ! :)

                      Cependant il n'affiche plus le bon resultat... :s
                      Par exemple si je commande une option a 0,52 il me dit que je doit payer 6,04 alors que normalement le prix devrait etre a 5,52 (dont 0,52 de commande + frais de port a 5€ = 5,52 !)

                      Coment ça se fait ça ??
                      1. Contributeur
                        salut,

                        en fait il manquait les identifiants ('id="blabla"') sur les balises que appellées par 'document.getElementById()'.
                        et pour les virgules il fallait ajouter des 'parseFloat()' dans 'acompte()'.
                        1. Ok. J'ai vu la fameuse page, et je pense que u devrais ecrire non pas "return tot", mais:
                          document.form....value=tot; (là où il y a ton input text...)
                          car sinon ça ne s'affiche pas, enfin je pense.
                          1. Tu ne veux pas que je t'envoie les fichiers pour que tu puisses les voir dans leur integralité ? et peut être que tu auras l'oeil ! :))
                            1. Contributeur
                              salut,

                              jette un oeil sur tes MP.
                          2. C'est fait et c'est tjs le même problème... je désespère ça fait 2 jours qu'on est là dessus glups :-(
                            1. Ok, si tu peux, remets exactement les codes dans l'ordre, on y verra plus clair :)
                              • 1
                              • 2
                              • 3
                              • 4