Actualiser frais de port en Javascript
Mr_SATAN
-
Mr_SATAN -
Mr_SATAN -
Bonjour,
Je travaille sur un formulaire de livraison de pizza et il me manque un tout petit détail pour que celui-ci soit complètement fonctionnel.
J'ai un script Javascript qui permet de choisir entre la "Livraison à domicile" et "Récupérer sa commande" en magasin. La Livraison inclue un frais de port supplémentaire (déclaré en PHP depuis une base de données) qu'on ne doit évidemment pas ajouter à la facture si le client choisit de venir chercher sa commande en magasin. En cliquant sur le bouton radio je souhaite que les frais de port soit ajoutés ou soustrait selon le type de commande qu'on sélectionne.
Le script en question permet actuellement de montrer/masquer les champs dont le client a besoin pour passer commande (on a pas besoin de son adresse postale s'il récupère sa commande par exemple). Le problème c'est qu'on cache également le frais de port mais qu'il est quand même ajouté au total :
Je me débrouille en PHP mais je suis un vrai newbie en Javascript. Pourriez-vous m'aider à y voir plus clair en me proposant un début de code ou une piste svp ? :)
Je travaille sur un formulaire de livraison de pizza et il me manque un tout petit détail pour que celui-ci soit complètement fonctionnel.
J'ai un script Javascript qui permet de choisir entre la "Livraison à domicile" et "Récupérer sa commande" en magasin. La Livraison inclue un frais de port supplémentaire (déclaré en PHP depuis une base de données) qu'on ne doit évidemment pas ajouter à la facture si le client choisit de venir chercher sa commande en magasin. En cliquant sur le bouton radio je souhaite que les frais de port soit ajoutés ou soustrait selon le type de commande qu'on sélectionne.
Le script en question permet actuellement de montrer/masquer les champs dont le client a besoin pour passer commande (on a pas besoin de son adresse postale s'il récupère sa commande par exemple). Le problème c'est qu'on cache également le frais de port mais qu'il est quand même ajouté au total :
function visibilite(thingId) { var targetElement; targetElement = document.getElementById(thingId) ; if (targetElement.style.display == "none") { targetElement.style.display = "" ; } else { targetElement.style.display = "none" ; } }
Je me débrouille en PHP mais je suis un vrai newbie en Javascript. Pourriez-vous m'aider à y voir plus clair en me proposant un début de code ou une piste svp ? :)
A voir également:
- Actualiser frais de port en Javascript
- Port icmp - Forum Réseau
- Advanced port scanner - Télécharger - Utilitaires
- A javascript error occurred in the main process - Forum Matériel & Système
- Telecharger javascript - Télécharger - Langages
- Port usb bloqué par administrateur ✓ - Forum Windows
4 réponses
Bonjour, sa fait longtemps que je n'ai plus toucher au javascript donc il peut y avoir quelques erreurs ;) :
En gros une solution possible ,c'est mettre un événement OnClick sur tes boutons radio :
<input type="radio" name="domicile" id="domicile" onclick="test()" />
<input type="radio" name="emporter" id="emporter" onclick="test()" />
donc a chaque fois que l'on va cliquer sur "a emporter" ou "a domicile" la fonction test() va être appeler, cette fonction devrait ressembler a sa
test()
{
if(document.formulaire.domicile.checked)
{
PrixTotal=Prix+FraisDePort
}
else
{
PrixTotal=Prix
}
}
J'espère t'avoir aider
En gros une solution possible ,c'est mettre un événement OnClick sur tes boutons radio :
<input type="radio" name="domicile" id="domicile" onclick="test()" />
<input type="radio" name="emporter" id="emporter" onclick="test()" />
donc a chaque fois que l'on va cliquer sur "a emporter" ou "a domicile" la fonction test() va être appeler, cette fonction devrait ressembler a sa
test()
{
if(document.formulaire.domicile.checked)
{
PrixTotal=Prix+FraisDePort
}
else
{
PrixTotal=Prix
}
}
J'espère t'avoir aider
Merci pour ta réponse Kevin !
Je pensais bien faire un truc comme ça mais directement en l'intégrant à ma fonction qui cache/montre le formulaire d'adresse pour la livraison (voir premier message).
Mon problème c'est que je ne sais pas comment faire apparaître le résultat de ce calcul sur ma page PHP :(
Je pensais bien faire un truc comme ça mais directement en l'intégrant à ma fonction qui cache/montre le formulaire d'adresse pour la livraison (voir premier message).
Mon problème c'est que je ne sais pas comment faire apparaître le résultat de ce calcul sur ma page PHP :(
Pour Changer le prix sans recharger la page ceci devrait fonctionner :
code Javascript : ChangerPrix() { if(document.formulaire.domicile.checked) { document.getElementById("Prix").innerHTML =Prix+2.5; //Prix avec frais de port } else { document.getElementById("Prix").innerHTML =Prix; //Prix sans frais de port } } code HTML : <input type="radio" name="domicile" id="domicile" onclick="ChangerPrix()" /> <input type="radio" name="emporter" id="emporter" onclick="ChangerPrix()" /> <span id=Prix> </span> <!-- Endroit ou va s'afficher le prix -->
Salut Kevin !
Bon, j'ai essayé de bidouiller à partir de ton bout de code mais je n'arrive pas à faire fonctionner le script... Je pense qu'il s'agit d'une erreur de syntaxe.
Voilà mon code :
La fonction a 3 buts :
- Calculer le prix avec et sans frais de livraison
- Masquer/afficher le formulaire d'adresse du client
- Masquer/afficher la ligne récapitulant les frais de port
Pourrais-tu jeter un coup d'oeil et me dire ce qui cloche stp ?
Bon, j'ai essayé de bidouiller à partir de ton bout de code mais je n'arrive pas à faire fonctionner le script... Je pense qu'il s'agit d'une erreur de syntaxe.
Voilà mon code :
function mode() { if(document.getElementById("livraison").checked) // Si le bouton "livraison" est sélectionné { var total = document.getElementById("total").value; var fdl = document.getElementById("fdl").value; document.getElementById("f_livraison").style.display = "block"; // On affiche la ligne "frais de livraison" du récapitulatif document.getElementById("livrer").style.display = "block"; // On affiche le tableau "livrer" (contenant les champs d'adresse) document.getElementById("total").innerHTML = total + fdl; //Prix avec frais de port } else { var total = document.getElementById("total").value; var fdl = 0; document.getElementById("f_livraison").style.display = "none"; // On masque la ligne "frais de livraison" du récapitulatif document.getElementById("livrer").style.display = "none"; // on masque le tableau "livrer" (contenant les champs d'adresse) document.getElementById("total").innerHTML = total; //Prix sans frais de port } }
La fonction a 3 buts :
- Calculer le prix avec et sans frais de livraison
- Masquer/afficher le formulaire d'adresse du client
- Masquer/afficher la ligne récapitulant les frais de port
Pourrais-tu jeter un coup d'oeil et me dire ce qui cloche stp ?