IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Onchange sur CALCULETTE


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 149
    Par défaut Onchange sur CALCULETTE
    Bonsoir,

    J'ai un serieux probleme avec cette calculette, alors les gars au secour

    Voici mon code

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $count=0;
    condition while {
    $count++;
    <!-- script calcul-->
    <script language="javascript">
    function calculTotal(){
    document.calculette.elements['total<?php echo $count;?>'].value = document.calculette.elements['prix<?php echo $count;?>'].value * document.calculette.elements['quantite<?php echo $count;?>'].value;
    }
    </script>
    <form name="calculette">
    <input type="texte" name="prix<?php echo $count;?>" onkeyup="calculTotal()">
    <input type="texte" name="quantite<?php echo $count;?>" onkeyup="calculTotal()">
    <input type="texte" name="total<?php echo $count;?>">
    </form>
    }

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu définis une fonction calculTotal() à chaque itération
    A la fin, lorsque tu l'appelles sur le onkeyup, laquelle va être lancée d'après toi...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 149
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Tu définis une fonction calculTotal() à chaque itération
    A la fin, lorsque tu l'appelles sur le onkeyup, laquelle va être lancée d'après toi...
    Je ne suis pas informaticien alors si vous pouvez bien m'aider se serait top merci d'avance de me corriger le code

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut C'est la cata !
    Bonjour lordlifen,

    Tu nous fais un programme en PHP. Pourquoi pas ? N'y a-t-il pas un Forum PHP ?
    Tu mélanges sans rime ni raison du JavaSript qui complique tout sans rien arranger.

    1) Des principes généraux de programmation
    a) fonctions
    On ne définit jamais de fonctions dans une boucle quel que soit le langage.
    Voir le post de Bovino.
    Exemple en pseudo-code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    definition fonction mafonction(var1,var2,var3,....){
    	.....
    	calcul sur var1,var2,var3,..
    	.....
    	return resultat
    }
     
    TantQue condition Faire
    	.....
    	resultat=mafonction(a,b,c,...)
    	.....
    FinTantQue
    b) formulaires HTML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form name="calculette">
    <input type="texte" name="prix<?php echo $count;?>" onkeyup="calculTotal()">
    <input type="texte" name="quantite<?php echo $count;?>" onkeyup="calculTotal()">
    <input type="texte" name="total<?php echo $count;?>">
    </form>
    Non et non.
    L'événement onkeyup est appelé quand après avoir appuyé sur une touche, on relâche la touche.
    Si tu tapes 123, tu auras 3 appels calculTotal(1) puis calculTotal(12) et enfin calculTotal(123).
    Ce n'est pas ce que tu veux.
    Dans le titre du post, tu mentionnes l'événement onChange. Celui-là est spécialisé dans les listes déroulantes (les balises <SELECT>).

    La syntaxe correcte est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="text" name="prix">15.24</input>
    ou mieux
    <input type="text" name="prix" value="15.24" />
    name ou id, sont à peu près synonymes et a priori des constantes.
    <input type="text" name="prix" value=<?php echo $count;?>" onkeyup="calculTotal()"> marcherait mieux.

    Manque un bouton <input type="submit"> qui permet d'envoyer le formulaire.
    Envoyer le formulaire ? Mais où ? C'est action="pagesuiv.php" qui le dit.
    Comment ? C'est method="GET" ou method="POST" qui renseigne.

    En phase de test, je suggère :
    <form method="GET" action="pagesuiv.php">
    L'appui sur le bouton sumit appelle l'url : pagesuiv.php?prix=15.24&quantite=12

    Ton formulaire marche.

    Dans pagesuiv.php, tu récupères les variables par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <php
    	$x=$_GET['prix'];
    	$y=$_GET['quantite'];
    	$total=$x*$y;
    	.....
    2) Soluce en Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>
    <script type="text/javascript" language="javascript">
    function calculeTotal(){
      var x=document.getElementById('prix').value;// document.getElementsByName('prix')[0].getAttribute("value");
      var y=document.getElementById('quantite').value;
      return x*y
    }
    </script>
    </head>
    <body>
    <form >
    <input type="text" id="prix" name="prix" value="15.24" />
    <input type="text" id="quantite" value="10" />
    <input type="text" id="total" value="" />
    <input type="button" onclick="javascript:document.getElementById('total').value=calculeTotal()" value="Calculer" />
    </form>
    Ici, le formulaire est bidon (pas de submit), on traite par javascript, sans recharger la page.
    On n'a droit qu'à un seul "id" par page, on le retrouve par getElementById.
    Les "name" peuvent être multiples, on les retrouve par getElementsByName, qui est un tableau, beaucoup plus lourd à manier. J'indique en commentaire comment le traiter. Pourquoi "[0]" ? C'est le premier élément du tableau.
    Cerise sur le gâteau, "getElementsByName" (qui devrait disparaître d'ailleurs) n'a pas un comportement standard avec IE.

    J'espère avoir aider, en regrettant la longueur excessive de ce post.
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 149
    Par défaut
    Mille merci big up à PapyWeb je suis trop content man ça marche du tonnerre de zeus xD. Mille merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  2. onChange sur un SELECT
    Par linar009 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/07/2006, 10h14
  3. [Onchange] sur checkbox selection ds une liste deroulante
    Par maxxou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2006, 00h17
  4. onChange sur Checkbox prob IE vs FireFox
    Par Teufboy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/11/2005, 09h02
  5. Gestion OnChange sur une sorte d'éditeur de propriétés
    Par Clorish dans le forum Composants VCL
    Réponses: 8
    Dernier message: 29/09/2004, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo