Bonjour,

Je suis débutante en php et encore plus en javascript, et j'ai un petit soucis avec un formulaire pour mon site de vente en ligne...

Le principe est d'afficher les articles en vente avec un champ pour que l'utilisateur y entre la quantité voulue.

A la fin du formulaire, j'aimerais avoir:

1. Le montant de la commande

2. Les frais de livraison (5.- pour un montant inférieur à 50Frs, sinon 0)

3. Le Total Final

Donc j'ai réussi à bricoler un formulaire qui fonctionne (je suppose qu'il y avait beaucoup plus simple...), malheureusement je ne trouve pas comment faire pour que les frais de livraison passe à "0" si la commande est supérieure à 50.-

J'ai essayé de mettre une condition ( if...else ) dans la value des frais de livraison (en utilisant $_POST['total'] ?) mais ça ne marche pas du tout...

Dans le code ci-dessous, l'addition du montant et des frais fonctionne, mais j'ai du ajouter un onblur avec les guillemets pas fermés (??)... Je ne comprends pas pourquoi ça fonctionne et que si je les ferme ou si je supprime ces onblur ça ne marche plus...

Voilà, si vous avez un moment pour me trouver la solution.... Merci beaucoup!


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript">
        function calcul()
        {
                var allumage_petit = Number((document.getElementById("allumage_petit").value)*(20));
                var buche_finlandaise_1m = Number((document.getElementById("buche_finlandaise_1m").value)*(25));
                var total = Number( allumage_petit + buche_finlandaise_1m ); document.getElementById("total").value = total;
        var frais_livraison = Number((document.getElementById("frais_livraison").value)*(1));
        var total_final = Number( total + frais_livraison ); document.getElementById("total_final").value = total_final;
        }
        </script>
    </head>
 
    <body>
        <article>
            <form method="post" action="commande_probleme.php" name="formulaire" id="formulaire">
                <fieldset>
                    <legend> MA COMMANDE </legend>
                                <label for="allumage_petit"> Bois d'allumage  -  20Frs <label> &nbsp &nbsp
                                <input   type="text" name="allumage_petit" id="allumage_petit"
                                        STYLE="text-decoration:none;;color: black;;font-size: 0.8em;" size="5" placeholder="0"
                                        value="<?php  echo $_POST['allumage_petit']; ?>"
                                        onblur="calcul()"
                                        />
                                <?php if( ( ($_POST['allumage_petit']) > "9999" ) )
                                {echo '<div id="erreur"> Impossible! </div>';}  ?>
                             
                            </br>
                                <label for="buche_finlandaise_1m"> Bûche Finlandaises  -  25Frs</label> &nbsp &nbsp
                                <input   type="text" name="buche_finlandaise_1m" id="buche_finlandaise_1m"
                                        STYLE="text-decoration:none;;color: black;;font-size: 0.8em;" size="5" placeholder="0"
                                        value="<?php  echo $_POST['buche_finlandaise_1m']; ?>"
                                        onblur="calcul()"/>
                                <?php if( ( ($_POST['buche_finlandaise_1m']) > "9999" ) )
                                {echo '<div id="erreur"> Impossible! </div>';}?>
             
                </fieldset>  
 
                <fieldset>
                    <legend> TOTAL DE VOTRE COMMANDE </legend>
                            <label id="total_de_commande"> Montant de la commande : </label>&nbsp &nbsp
                            <input   type="text" SIZE="5" STYLE="text-decoration:none;;color: black;;font-size: 0.8em;" name="total" id="total"
                                    placeholder="0"
                                    value="<?php  echo $_POST['total']; ?>"
                                    onblur="calcul() /> Frs
                        </br>
                            <label id="frais_livraison"> Frais de livraison : </label>&nbsp &nbsp
                            <input   type="text" SIZE="5" STYLE="text-decoration:none;;color: black;;font-size: 0.8em;" name="frais_livraison" id="frais_livraison"
                                    placeholder="0"
                                    value="5"
                                    onblur="calcul()
                                    /> Frs
                        </br>
                            <label id="total_final"> Total Final : </label>&nbsp &nbsp
                            <input   type="text" SIZE="5" STYLE="text-decoration:none;;color: black;;font-size: 0.8em;" name="total_final" id="total_final"
                                    placeholder="0"
                                    value="<?php  echo $_POST['total_final']; ?>"
                                    /> Frs
                             
                </fieldset>  
                 
                <input type="submit" name="envoyer" value="Envoyer ma commande"/>
 
            </form>
        </article>
    </body>
</html>
Salut

Bon déjà des onblur avec des guillemets pas fermé c'est pas normal.. essaye de remplacer les guillemets par des quote ' ' ..

sinon pour le calcul

var frais_livraison = Number((document.getElementById("frais_livraison").value)*(1));
if(total > 50) { frais_livraison=0; }
        var total_final = Number( total + frais_livraison );


très simple tu vois Smiley smile
Merci... malheureusement ça ne marche pas... Smiley sweatdrop
je ne sais pas si il y a une erreur ailleurs car même si je copie exactement le calcul du total pour le champs frais de livraison (juste pour essayer) :

var total = Number( allumage_petit + buche_finlandaise_1m ); document.getElementById("total").value = total;
var frais_livraison = Number( allumage_petit + buche_finlandaise_1m ); document.getElementById("frais_livraison").value = frais_livraison;			


... la case ds frais reste toujours à 0 mais le total marche ...?? J'y comprends rien Smiley eek !!