Operateur et PHP

Résolu
balbeur Messages postés 31 Statut Membre -  
balbeur Messages postés 31 Statut Membre -
Bonjour,

J'ai un petit soucis dans mon code php, qui va etre banale, je pense pour vous

J'ai fais un tableau et je voudrais que s'affiche automatiquement le resultat d'une operation
de multiplication dans une cellule

Voila le code

<td style="text-align: center; vertical-align: top;"><span class="Style4">
<input name="design" id="design" size="50" maxlength="48">
</span></td>
<td style="text-align: center; vertical-align: top;"><span class="Style4">
<input name="nombre" id="nombre" size="10" maxlength="2">
</span></td>
<td style="text-align: center; vertical-align: top;"><span class="Style4">
<input name="prix" id="prix" size="10" maxlength="5">
</span></td>
<td style="text-align: center; vertical-align: top;"><span class="Style4">
<input name="total" id="total" size="10" maxlength="5">
<?php
$total = $prix*$nombre;
echo $total;
?>
</span></td>

Je multiplie donc prix par nombre et je voudrais que ca s'affiche dans total,
mais hélas apres 2 heures de recherche sur le web, pas moyen de trouver

Pouvez vous m'aider s'il vous plait, merci...Céline
Configuration: Windows Vista
Internet Explorer 7.0

34 réponses

  • 1
  • 2
Résumé de la discussion

Le fil porte sur l'affichage automatique du produit du prix et du nombre dans une cellule total d'un tableau HTML, sans dépendre d'une revalidation côté serveur en PHP. Plusieurs réponses préconisent d'utiliser JavaScript pour calculer le total en temps réel, en récupérant les valeurs des champs 'nombre' et 'prix', puis en affichant le résultat dans 'total'. Certaines discussions évoquent aussi que mélanger PHP et JavaScript est possible, mais que PHP ne peut utiliser directement les valeurs des champs du formulaire sans soumission, rendant JavaScript plus simple et fiable. En pratique, les échanges montrent des essais jusqu'à une solution fonctionnelle lorsqu'on gère correctement les nombres et les événements, évitant les erreurs NaN ou la concaténation de chaînes.

Bobot (l'IA à votre service)
  1. Utilisateur anonyme
     
    Tu peux réaliser ton calcul avec l'utilisation de javascript comme suit :
    <HTML>
    <HEAD>
    <SCRIPT language="Javascript">
    <!--
    
    function CalculerTotal() {
    	var nombre = document.getElementById('nombre').value;
    	var prix = document.getElementById('prix').value;
    
    	var total;
    
    	if(!isNaN(nombre) && !isNaN(prix))
    		total = nombre * prix;
    	else
    		total = 'Merci de saisir des nombres';
    	document.getElementById('total').value = total;
    }
    
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <table>
    <tr>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="design" id="design" size="50" maxlength="48">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="nombre" id="nombre" size="10" maxlength="2">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="prix" id="prix" size="10" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="total" id="total" size="5" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="calculer" id="calculer" type="button" onclick="CalculerTotal();" value="Calculer"/>
    </span></td>
    </BODY>
    </HTML>


    Avec Php cela serait plus compliqué ;-)
    0
  2. balbeur Messages postés 31 Statut Membre
     
    Merci pour ta réponse mais est ce que je peux mélanger du javascript sanchant qu'il y a déja du php dedans, ca ne va pas mettre le "bazar" en plus du html ?
    0
  3. Utilisateur anonyme
     
    Non pas de souci. Il suffit juste de rajouter la fonction javascript dans la partie <head></head> de ton html.
    0
  4. balbeur Messages postés 31 Statut Membre
     
    Bon eh bien je vais essayé, je vous tiens au courant Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. balbeur Messages postés 31 Statut Membre
     
    Ok ca marche merci
    0
  7. balbeur
     
    Bonjour

    Le code marche a merveille !
    J'aurais souhaité aditionner les variables defini plus haut , j'ai donc fais

    <tr><SCRIPT language="Javascript">
    <!--

    function CalculerTotal1000() {

    if(!isNaN(total) && !isNaN(total2))
    total1000 = total + total2;
    else
    total1000 = 'Merci de saisir des nombres';
    document.getElementById('total1000').value = total1000;
    }

    //-->
    </SCRIPT>
    <div align="center"><br>
    Montant total de votre commande <span class="Style4">
    <input name="total1000" id="total1000" size="10" maxlength="5">
    </span> €
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="Calculertotal1000" id="Calculertotal10" size="50" type="button" onclick="CalculerTotal1000();" value="Calculer"/>
    </span></td>

    Mais apparemment ca ne marche pas, voyez vous une erreur.
    Faut il encore redefinir des variables, alors qu'elle sont déja utilisé plus haut ?
    0
  8. Utilisateur anonyme
     
    Donne moi le code avec la déclaration des variables total et total 2 stp pour que je puisse tout vérifier ;-)
    0
  9. balbeur
     
    <tr><SCRIPT language="Javascript">
    <!--

    function CalculerTotal() {
    var nombre = document.getElementById('nombre').value;
    var prix = document.getElementById('prix').value;

    var total;

    if(!isNaN(nombre) && !isNaN(prix))
    total = nombre * prix;
    else
    total = 'Merci de saisir des nombres';
    document.getElementById('total').value = total;
    }

    //-->
    </SCRIPT>

    <td style="text-align: center; vertical-align: top;"><span class="Style4"><input name="commande" id="commande" size="10" maxlength="6"></span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="design" id="design" size="50" maxlength="48">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="nombre" id="nombre" size="10" maxlength="2">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="prix" id="prix" size="10" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="total" id="total" size="10" maxlength="5">
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="calculer" id="calculer" size="50" type="button" onClick="CalculerTotal();" value="Calculer"/>
    </span></td>

    et........

    <tr><SCRIPT language="Javascript">
    <!--

    function CalculerTotal2() {
    var nombre2 = document.getElementById('nombre2').value;
    var prix2 = document.getElementById('prix2').value;

    var total2;

    if(!isNaN(nombre2) && !isNaN(prix2))
    total2 = nombre2 * prix2;
    else
    total2 = 'Merci de saisir des nombres';
    document.getElementById('total2').value = total2;
    }

    //-->
    </SCRIPT>
    <td style="text-align: center; vertical-align: top;"><span class="Style4"><input name="commande2" id="commande2" size="10" maxlength="6">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="design2" id="design2" size="50" maxlength="48">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="nombre2" id="nombre2" size="10" maxlength="2">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="prix2" id="prix2" size="10" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="total2" id="total2" size="10" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="calculer2" id="calculer2" size="50" type="button" onClick="CalculerTotal2();" value="Calculer"/>
    </span></td>

    Merci... Céline
    0
  10. Utilisateur anonyme
     
    Arff tu as oublié de récupérer les valeurs des variables :
    function CalculerTotal1000() {
    
         var total = document.getElementById('total');
         var total2 = document.getElementById('total2');
    
         if(!isNaN(total) && !isNaN(total2))
              total1000 = total + total2;
         else
             total1000 = 'Merci de saisir des nombres';
         document.getElementById('total1000').value = total1000;
    }
    Ça devrait marcher maintenant ;-)
    0
  11. Utilisateur anonyme
     
    J'ai modifié mon post précédent ;-)
    0
  12. balbeur
     
    Je n'arrive pas a recuperer mes variable $total pour les aditionner
    0
  13. Utilisateur anonyme
     
    Essaye le code suivant :
    function CalculerTotal1000() {
    
         var total = document.getElementById('total');
         var total2 = document.getElementById('total2');
    
         if(!isNaN(total) && !isNaN(total2))
              total1000 = total + total2;
         else
             total1000 = 'Merci de saisir des nombres';
         document.getElementById('total1000').value = total1000;
    }
    0
  14. balbeur
     
    Non ca n'as pas l'air,
    quand je clique sur "calculer" ca me marque erreur sur la page
    0
  15. balbeur
     
    J'ai beau verifier et re-vérifier, ca ne veux pas calculer mes champs total.

    Céline

    Peut etre serais ce plus facile de le faire en php ??
    0
  16. balbeur
     
    Bonjour

    En faite , je croyais que le code marchait, mais il ne fonctionne pas avec les nombres a virgule !

    Donc si quelqu'un a une iddée pour que ca fonctionne je suis preneuse !

    <HTML>
    <HEAD>
    <SCRIPT language="Javascript">
    <!--

    function CalculerTotal() {
    var nombre = document.getElementById('nombre').value;
    var prix = document.getElementById('prix').value;

    var total;

    if(!isNaN(nombre) && !isNaN(prix))
    total = nombre * prix;
    else
    total = 'Merci de saisir des nombres';
    document.getElementById('total').value = total;
    }

    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <table>
    <tr>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="design" id="design" size="50" maxlength="48">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="nombre" id="nombre" size="10" maxlength="2">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="prix" id="prix" size="10" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="total" id="total" size="5" maxlength="5">
    </span></td>
    <td style="text-align: center; vertical-align: top;"><span class="Style4">
    <input name="calculer" id="calculer" size="50" type="button" onclick="CalculerTotal();" value="Calculer"/>
    </span></td>
    </BODY>
    </HTML>

    Idem pour mon probleme d'addition des totals, qui ne fonctionne pas !

    Je connais pas grand chose en informatique, mais je suis eleve infirmiere, alors si vous avez des piqures a faire , amenez vos fe.....

    Merci

    Céline
    0
  17. balbeur Messages postés 31 Statut Membre
     
    Zut j'ai oublié de noter probleme non resolu.......céline Ha tete de linotte
    0
  18. Utilisateur anonyme
     
    Ce script marche correctement pour les nombres à virgules. Seulement il faut saisir tes valeurs avec le séparateur "."

    En ce qui concerne ton erreur que tu obtiens donne moi le texte exact stp.
    0
  19. balbeur
     
    Bonjour Tassin

    Tu as effectivement raison concernant le séparateur, il faut bien que ce soit un point.

    Lors du calcul d'un nombre a virgule, il me met un resultat a rallonge
    exemple 3 x 3.96 resultat 11.879999999999999

    et lors d'un calcul de tout les totaux, il me met "Merci de saisir des nombres"
    alors que tout et bien rempli.
    J'ai essayé de me renseigner et de chercher, mais je n'y comprend rien,
    je connais a peine le PHP alors le JS....

    Merci pour aide...

    Céline
    0
  20. Utilisateur anonyme
     
    Essaye de voir ce si il arrive bien à récupérer les valeurs, pour ce faire change la fonction javascript comme suit :
    function CalculerTotal1000() {
    
         var total = document.getElementById('total');
         var total2 = document.getElementById('total2');
         
         alert('total = '+total);
         alert('total2 = '+total2);
    
         if(!isNaN(total) && !isNaN(total2))
              total1000 = total + total2;
         else
             total1000 = 'Merci de saisir des nombres';
         document.getElementById('total1000').value = total1000;
    }
    0
  • 1
  • 2