Problème de calcul

auremax Messages postés 14 Statut Membre -  
 Profil bloqué -
Bonjour,
j'ai créé un formulaire de commande avec un calcul automatique du total, mais voilà cela ne marche pas mais je ne sais pas ou cela coince.
Je vous met mon code de ma page html:
<dl class="Style2"><p><strong>Nombre d'exemplaires ?</strong></p>
<dl>
<dd>
<div id="Produits" visibility: visible">
<form name="Form_Produits" enctype="text/plain">
<table width="505">
<tr>
<td width="57"><input type="text" size="5" name="DVD" class="TexteMarron12px" value="0" onKeyUp="CalcTotal();"></td>
<td width="434" class="Style2"><b>DVD</b>  à 20.-- Frs/pièce (frais de port en sus)</td>
</tr>
<tr>
<td width="57"><input type="text" size="5" name="Pougnon" class="TexteMarron12px" value="0" onKeyUp="CalcTotal();"></td>
<td class="Style2" width="434"><b>Pougnon</b> à   3.-- Frs/pièce (frais de port en sus) </td>
</tr>
<tr>
<td width="57"><input type="text" size="5" name="Recueil" class="TexteMarron12px" value="0" onKeyUp="CalcTotal();"></td>
<td class="Style2" width="434"><b>Recueil de parties</b>   5.-- Frs/pièce (frais de port en sus)
</td>
</tr>
<tr>
<td width="57">
<hr>
</td>
<td class="Style2" width="434"> </td>
</tr>
<tr>
<td width="57"><input type="text" size="5" name="Total" class="TexteMarron14px" value="0" readonly></td>
<td class="Style2" width="434">TOTAL DE LA COMMANDE </td>
</tr>
</table>
</form>
</div>

et ensuite le script de Javascript:
var Tab_Prod = ["DVD: ", "Pougnon: ", "Recueil de parties: ", "TOTAL en SFr: "];
var Tab_Prix = [20, 3, 5, 0];

// ************************************************************************************************************************
// Chaque modif sur le formulaire est automatiquement reportée dans le calcul du total
// ************************************************************************************************************************
function CalcTotal(test)
{
var Cout = 0;
if (document.Form_Adresse.Manifestations.value == "08/01")
{
for (var i = 0; i < document.Form_Aout.elements.length - 2; i++)
{
if (isNaN(document.Form_Aout.elements[i].value) ||
document.Form_Aout.elements[i].value.indexOf("-") != -1 ||
document.Form_Aout.elements[i].value.indexOf(".") != -1 ||
document.Form_Aout.elements[i].value.indexOf(",") != -1)
{
window.alert("PROBLEME: Vérifiez svp les quantités que vous avez saisies !");
document.Form_Aout.Total.value = 0;
return "NON";
}
else
Cout += document.Form_Aout.elements[i].value * Tab_PrixAout[i];
}

document.Form_Aout.Total.value = Cout;
}
else
{
for (var i = 0; i < document.Form_Produits.elements.length - 2; i++)
{
if (isNaN(document.Form_Produits.elements[i].value) ||
document.Form_Produits.elements[i].value.indexOf("-") != -1 ||
document.Form_Produits.elements[i].value.indexOf(".") != -1 ||
document.Form_Produits.elements[i].value.indexOf(",") != -1)
{
window.alert("PROBLEME: Vérifiez svp les quantités que vous avez saisies !");
document.Form_Produits.Total.value = 0;
return "NON";
}
else
{
if ((i == 10 || i == 11) && (document.Form_Produits.elements[i].value < 20) &&
(document.Form_Produits.elements[i].value != 0))
{
window.alert("ATTENTION: Les quiches et les ramequins ne se commandent pas à moins de 20 pièces !");
document.Form_Produits.elements[i].value = 0;
}
Cout += document.Form_Produits.elements[i].value * Tab_Prix[i];
}
}

document.Form_Produits.Total.value = Cout;
}
if (test == "tester" && Cout == 0)
{
window.alert("PROBLEME: Vous n'avez pas selectionné de produit !");
document.Form_Produits.Total.value = 0;
return "NON";
}
return "OUI";
}

Merci de votre aide
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. Profil bloqué
     
    salut,que t'affiche la page?
    0
  2. auremax Messages postés 14 Statut Membre
     
    Il m'affiche juste mais ne fait pas les calculs automatiquement
    0
  3. Profil bloqué
     
    Déjà ce formulaire là:"document.Form_Adresse.Manifestations.value",je vois ke ça n'existe pas.
    0
  4. Profil bloqué
     
    essai ce code:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Vente</title>
    <script type="text/javascript">
    var Tab_Prod = ["DVD: ", "Pougnon: ", "Recueil de parties: ", "TOTAL en SFr: "];
    var Tab_Prix = [20, 3, 5, 0];

    // ****************************************************************************************** ******************************
    // Chaque modif sur le formulaire est automatiquement reportée dans le calcul du total
    // ****************************************************************************************** ******************************
    function CalcTotal()
    {
    var Cout = 0;
    /*
    if (document.Form_Adresse.Manifestations.value == "08/01")
    {
    for (var i = 0; i < document.Form_Aout.elements.length - 2; i++)
    {
    if (isNaN(document.Form_Aout.elements[i].value) ||
    document.Form_Aout.elements[i].value.indexOf("-") != -1 ||
    document.Form_Aout.elements[i].value.indexOf(".") != -1 ||
    document.Form_Aout.elements[i].value.indexOf(",") != -1)
    {
    window.alert("PROBLEME: Vérifiez svp les quantités que vous avez saisies !");
    document.Form_Aout.Total.value = 0;
    return "NON";
    }
    else
    Cout += document.Form_Aout.elements[i].value * Tab_PrixAout[i];
    }

    document.Form_Aout.Total.value = Cout;
    }
    else
    {*/
    for (var i = 0; i < document.Form_Produits.elements.length - 2; i++)
    {
    if (isNaN(document.Form_Produits.elements[i].value) ||
    document.Form_Produits.elements[i].value.indexOf("-") != -1 ||
    document.Form_Produits.elements[i].value.indexOf(".") != -1 ||
    document.Form_Produits.elements[i].value.indexOf(",") != -1)
    {
    window.alert("PROBLEME: Vérifiez svp les quantités que vous avez saisies !");
    document.Form_Produits.Total.value = 0;
    return "NON";
    }
    else
    {
    if ((i == 10 || i == 11) && (document.Form_Produits.elements[i].value < 20) &&
    (document.Form_Produits.elements[i].value != 0))
    {
    window.alert("ATTENTION: Les quiches et les ramequins ne se commandent pas à moins de 20 pièces !");
    document.Form_Produits.elements[i].value = 0;
    }
    Cout += document.Form_Produits.elements[i].value * Tab_Prix[i];
    }

    document.Form_Produits.Total.value = Cout;
    }
    if ( Cout == 0)
    {
    window.alert("PROBLEME: Vous n'avez pas selectionné de produit !");
    document.Form_Produits.Total.value = 0;
    return "NON";
    }
    return "OUI";
    }
    </script>
    </head>
    <body>
    <dl class="Style2"><p><strong>Nombre d'exemplaires ?</strong></p></dl>
    <dd>
    <div id="Produits" visibility: visible>
    <form name="Form_Produits" enctype="text/plain">
    <table width="505">
    <tr>
    <td width="57"><input type="text" size="5" name="DVD" class="TexteMarron12px" value="0" onchange="javascript:CalcTotal();"></td>
    <td width="434" class="Style2"><b>DVD</b> à 20.-- Frs/pièce (frais de port en sus)</td>
    </tr>
    <tr>
    <td width="57"><input type="text" size="5" name="Pougnon" class="TexteMarron12px" value="0" onchange="javascript:CalcTotal();"></td>
    <td class="Style2" width="434"><b>Pougnon</b> à 3.-- Frs/pièce (frais de port en sus) </td>
    </tr>
    <tr>
    <td width="57"><input type="text" size="5" name="Recueil" class="TexteMarron12px" value="0" onchange="javascript:CalcTotal();"></td>
    <td class="Style2" width="434"><b>Recueil de parties</b> 5.-- Frs/pièce (frais de port en sus)
    </td>
    </tr>
    <tr>
    <td width="57">
    <hr>
    </td>
    <td class="Style2" width="434"> </td>
    </tr>
    <tr>
    <td width="57"><input type="text" size="5" name="Total" class="TexteMarron14px" value="0" readonly></td>
    <td class="Style2" width="434">TOTAL DE LA COMMANDE </td>
    </tr>
    </table>
    </form>
    </div>
    </body>
    </html>
    0