Probleme sur formulaire
Résolu/Fermé
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
-
16 oct. 2007 à 16:02
Orkaell - 1 nov. 2007 à 22:48
Orkaell - 1 nov. 2007 à 22:48
A voir également:
- Que veut dire alias du formulaire
- Formulaire de réclamation facebook - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Pierre a créé un raccourci (alias ou lien) du fichier sommaire sur son bureau. quel est le numéro de l'icône correspondant à ce raccourci ? ✓ - Forum Word
- Problème avec Google Chrome - Forum Google Chrome
- Récupérer compte hotmail sans formulaire ✓ - Forum Hotmail / Outlook.com
66 réponses
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
16 oct. 2007 à 16:10
16 oct. 2007 à 16:10
salut,
je te propose :
je te propose :
function total(val) { if (Math.parseInt(val) > 60) { return parseInt(val) + 5; } else { return parseInt(val); } }
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 16:14
16 oct. 2007 à 16:14
Salut :)
Merci de repondre aussi rapidement :)
J'essaye ça tout de suite
Merci de repondre aussi rapidement :)
J'essaye ça tout de suite
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 16:18
16 oct. 2007 à 16:18
J'ai incorporé ce bout de code dans mon script mais ça ne marche pas...
Faut-il l'ajouter tout simplement ou bien remplacer certaine fonction ? :-s
Faut-il l'ajouter tout simplement ou bien remplacer certaine fonction ? :-s
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
16 oct. 2007 à 16:37
16 oct. 2007 à 16:37
non c'est une fonction toute bête qui ne fait qu'ajouter 5 à une valeur si elle dépasse 60.
il faut que tu l'appelles depuis l'endroit du code où tu as besoin de majorer ta valeur.
il faut que tu l'appelles depuis l'endroit du code où tu as besoin de majorer ta valeur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 17:00
16 oct. 2007 à 17:00
ça ne fonctionne pas :-/
Il doit y avoir certaine chose qui parasite, ou des termes differents pour le total et val.... ou peut etre que je l'ai mal inseré
Tu as une idée ? ou peux-tu m'en dire plus ?
Il doit y avoir certaine chose qui parasite, ou des termes differents pour le total et val.... ou peut etre que je l'ai mal inseré
Tu as une idée ? ou peux-tu m'en dire plus ?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
16 oct. 2007 à 17:14
16 oct. 2007 à 17:14
explique moi ta fonction.
je n'ai pas compris ce que tu fais ni d'où vienne les valeurs.
je n'ai pas compris ce que tu fais ni d'où vienne les valeurs.
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 17:20
16 oct. 2007 à 17:20
c'est un formulaire de commande, chaque option a un prix, les prix sont cummulés puis calculés.
Mais si la commande et inferieure a 60€ le client paie des frais de port, donc dans ce cas là il faut rajouter 5€ a la totalité.
mon total et recuperé dans le bout de code que j'ai mis en debut de post je le remets ici
donc je pense que les 5e doivent être rajouté là dedans... Mais je ne sais aps comment faire :-s
Mais si la commande et inferieure a 60€ le client paie des frais de port, donc dans ce cas là il faut rajouter 5€ a la totalité.
mon total et recuperé dans le bout de code que j'ai mis en debut de post je le remets ici
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; }
donc je pense que les 5e doivent être rajouté là dedans... Mais je ne sais aps comment faire :-s
ilan27
Messages postés
394
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
15 juin 2009
36
16 oct. 2007 à 17:36
16 oct. 2007 à 17:36
Bonsoir, c'est normal, la fonction qu'a proposée Mathieu est correcte, mais ne retourne pas ce qu'il faut: la fonction renvoie +5 si c'est superieur à 60, or si j'ai bien compris c'est le contraire...:
Je la reprends en corrigeant:
function total(val)
{
if (Math.parseInt(val) < 60)
{
return parseInt(val) + 5;
}
else
{
return parseInt(val);
}
}
Et tu dois appeler cette fonction:
tot=total(tot);
Je la reprends en corrigeant:
function total(val)
{
if (Math.parseInt(val) < 60)
{
return parseInt(val) + 5;
}
else
{
return parseInt(val);
}
}
Et tu dois appeler cette fonction:
tot=total(tot);
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 17:51
16 oct. 2007 à 17:51
Oui c'est bien le contraire qu'il faut :)
Mais le problème c'est que je ne sais pas ou et comment l'appeler cette fonction :-s
J'ai mis en place la fonction total(val)
mais comment l'appeler dans mon code ? :-s
je suis désolée mes connaissance en script sont tres limité... j'ai su modifier ce qu'il fallait mais rajouter une fonction, là je suis perdue :-/
Mais le problème c'est que je ne sais pas ou et comment l'appeler cette fonction :-s
J'ai mis en place la fonction total(val)
mais comment l'appeler dans mon code ? :-s
je suis désolée mes connaissance en script sont tres limité... j'ai su modifier ce qu'il fallait mais rajouter une fonction, là je suis perdue :-/
ilan27
Messages postés
394
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
15 juin 2009
36
16 oct. 2007 à 18:01
16 oct. 2007 à 18:01
Cette fonction arrondit, je ne sais pas pourquoi, sinon tu as celle la:
function total(val)
{
if (val > 60)
{
return (val + 5);
}
else
{
return val;
}
}
Tu dois insérer cette fonction en haut des autres (du moment qu'elle est avant l'instruction qui l'utilisera), et tu dois insérer "tot=total(tot);" je pense avant return tot; .
function total(val)
{
if (val > 60)
{
return (val + 5);
}
else
{
return val;
}
}
Tu dois insérer cette fonction en haut des autres (du moment qu'elle est avant l'instruction qui l'utilisera), et tu dois insérer "tot=total(tot);" je pense avant return tot; .
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
16 oct. 2007 à 18:03
16 oct. 2007 à 18:03
le but du jeu n'était pas d'arrondir mais de transtyper au cas où la valeur saisie soit une chaine.
et merci pour la relecture !
et merci pour la relecture !
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
16 oct. 2007 à 18:01
16 oct. 2007 à 18:01
regarde ce que t'écris ilan27 !
Et tu dois appeler cette fonction:
tot=total(tot);
donc si tu veux ajouter les frais de port à la fin tu codes :
ou en une seule ligne :
Et tu dois appeler cette fonction:
tot=total(tot);
donc si tu veux ajouter les frais de port à la fin tu codes :
tot=total(tot); return tot;
ou en une seule ligne :
return total(tot);
ilan27
Messages postés
394
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
15 juin 2009
36
16 oct. 2007 à 18:08
16 oct. 2007 à 18:08
Oui, j'avais mal compris le vrai sens de ParseInt, il faut en effet le mettre. Mais pour la double instruction, j'ai trouvé ça plus clair pour comprendre le truc, mais après, on peut tout réduire en effet, dans ce cas je pense que ceci marche aussi:
function total(val){
return Math.parseInt(val)>60? Math.parseInt(val): (Math.parseInt(val)+5);
}
function total(val){
return Math.parseInt(val)>60? Math.parseInt(val): (Math.parseInt(val)+5);
}
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 18:23
16 oct. 2007 à 18:23
WOW merci bcp ça fonctionne comme il faut !! :)))
Un grand merci à tout les 2 :)
J'aurais une autre question
dans mon total les centimes ne s'affichent pas... y a une soluce pour palier au problème ?
Un grand merci à tout les 2 :)
J'aurais une autre question
dans mon total les centimes ne s'affichent pas... y a une soluce pour palier au problème ?
ilan27
Messages postés
394
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
15 juin 2009
36
16 oct. 2007 à 19:03
16 oct. 2007 à 19:03
aaaaah, je le savais bien ;)
Essaye Math.parseDouble a la place de Math.parseInt
Essaye Math.parseDouble a la place de Math.parseInt
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 19:39
16 oct. 2007 à 19:39
hum.. je le mets ou ? :-))
ilan27
Messages postés
394
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
15 juin 2009
36
16 oct. 2007 à 19:51
16 oct. 2007 à 19:51
A la place de ParseInt...:
function total(val)
{
if (Math.parseDouble(val) < 60)
{
return Math.parseDouble(val) + 5;
}
else
{
return Math.parseDouble(val);
}
}
Ca marche?
function total(val)
{
if (Math.parseDouble(val) < 60)
{
return Math.parseDouble(val) + 5;
}
else
{
return Math.parseDouble(val);
}
}
Ca marche?
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 20:04
16 oct. 2007 à 20:04
J'ai mis ça donc dans mes codes :
Et là la fonction des frais de port fonctionne nikel, en revanche je n'ai pas les centimes qui s'affichent, et si j'essaie ce que m'a donné Ilan ça ne fonctionne plus :-s
function total(val) { if (val < 60) { return (val + 5); } else { return val; } } function total_com() { tot = 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; }
Et là la fonction des frais de port fonctionne nikel, en revanche je n'ai pas les centimes qui s'affichent, et si j'essaie ce que m'a donné Ilan ça ne fonctionne plus :-s
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
16 oct. 2007 à 20:06
16 oct. 2007 à 20:06
si cela ne fonctionne pas :
on se contente de tester le type, retourne '0' en cas de saisie incorrecte.
j'ai virer les 'else' (inutiles puisque 'return' est une sortie de fonction).
function total(val) { if (typeof(val) == 'number') { if (val < 60) { return val + 5; } return val; } return 0; } }
on se contente de tester le type, retourne '0' en cas de saisie incorrecte.
j'ai virer les 'else' (inutiles puisque 'return' est une sortie de fonction).
ilan27
Messages postés
394
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
15 juin 2009
36
16 oct. 2007 à 20:08
16 oct. 2007 à 20:08
Essaye comme ceci, j'ai rajouté des ".0" pour dire: ce sont des réels, il faut donc afficher quelque chose après la virgule
function total(val)
{
if (val < 60)
{
return (val + 5.0);
}
else
{
return 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;
}
function total(val)
{
if (val < 60)
{
return (val + 5.0);
}
else
{
return 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;
}
Orkaell
Messages postés
28
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
19 octobre 2007
16 oct. 2007 à 20:24
16 oct. 2007 à 20:24
J'ai essaye vos 2 proposition et ça ne fonctionne pas :-/
Dalida : si je remplace ta derniere proposition les totaux ne s'affichent plus
Ilan : si je mets se code là a la place de celui que j'ai ça ne change rien. Tjs pas de centimes
Dalida : si je remplace ta derniere proposition les totaux ne s'affichent plus
Ilan : si je mets se code là a la place de celui que j'ai ça ne change rien. Tjs pas de centimes