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 :

Calculer un champ texte depuis un autre champ texte via Onchange


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut Calculer un champ texte depuis un autre champ texte via Onchange
    Bonjour,

    j'ai un formulaire avec une liste de champs à remplir.
    En fin de formulaire, il y a un bouton pour calculer le total.

    Est-ce possible via "OnChange" ou autre, que ce total s'ajuste automatiquement dès qu'on quitte un champ et sans devoir appuyer sur le bouton 'submit' ?

    merci,

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Oui tout à fait. Dans le onchange, vous pouvez appeler la fonction de calcul.
    Soit vous précisez un onchange sur les x champs qui font intervenir le calcul (écrire l'appel x fois) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="text" id="un" onchange="calcul();">
    <input type="text" id="deux" onchange="calcul();">
    <input type="text" id="x" onchange="calcul();">
    Soit vous définissez que pour les inputs de tel nom/type/class/... vous déclenchez la fonction de calcul sur le onchange (écrire l'appel 1 fois) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <input type="text" id="deux" name="champ_calcul" onchange="calcul();">
    <input type="text" id="deux" name="champ_calcul" onchange="calcul();">
    <input type="text" id="deux" name="champ_calcul" onchange="calcul();">
     
    <script>
    document.getElementsByName("champ_calcul").onchange = calcul();
    </script>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut
    merci beaucoup pour votre réponse.

    par contre avant, je faisais un include de "calcul.php" si on appuyait sur tel bouton pour calculer le total. Ici comment faire ? je dois réécrire mon fichier en javascript au lieu du php ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['etape41'])) 
    { 
     include("calcul_divers.php");
    }
    y a t il un équivalent en javascript ?
    donc ne pas réécrire mon fichier PHP avec les calcules en javascript.

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Si le calcul est simple est pas du tout secret, le mieux serait effectivement de le traduire en Javascript.
    Sinon, vous pouvez faire un appel Ajax qui ira contacter calcul.php et qui mettra le résultat à l'endroit voulu.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut
    pour résumé, voici ce qu'il y a dans on fichier calcul.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $_SESSION['champ1'] = $_POST['champ1'];
    $_SESSION['prix_champ1'] = 11.90;
    .....
    $_SESSION['total'];
    $_SESSION['total'] += ($_SESSION['champ1'] * $_SESSION['prix_champ1']);

    Merci pour les réponses, je vais faire des tests.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 46
    Points : 80
    Points
    80
    Par défaut
    Tu as intérêt à faire de l'ajax, étant donné que visiblement tu comptes stocker des valeurs dans la superglobale $_SESSION.
    Donc il faut obligatoirement envoyer des données au serveur pour qu'il réalise ce stockage... A moins de faire ce stockage dans un cookie, auquel cas tu peux le manipuler en JavaScript.

  7. #7
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par briegel Voir le message
    Tu as intérêt à faire de l'ajax, étant donné que visiblement tu comptes stocker des valeurs dans la superglobale $_SESSION.
    Donc il faut obligatoirement envoyer des données au serveur pour qu'il réalise ce stockage... A moins de faire ce stockage dans un cookie, auquel cas tu peux le manipuler en JavaScript.
    Ola !!! Attention !
    Le calcul en JavaScript ne doit pas se substituer au calcul PHP, il ne doit être là que pour offrir une information.
    Le véritable calcul, donc avec les vraies valeurs, pas celles contenues dans un input devra se faire avec des données du serveur, pas avec celles modifiables de la page.

    Enfin tomguiss, s'il s'agit uniquement de calculer un prix selon une quantité et éventuellement de la TVA, la récupération des valeurs des input et une utilisation judicieuse de l'opérateur * devraient être suffisants
    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

Discussions similaires

  1. Ecrire dans un champs de texte depuis une autre activité
    Par MrFullbuster dans le forum Android
    Réponses: 1
    Dernier message: 13/04/2015, 19h13
  2. [AC-2013] Calculer la valeur d'un champ multivalué depuis un autre
    Par simjen dans le forum Access
    Réponses: 1
    Dernier message: 06/02/2015, 01h50
  3. Remplir automatiquement 1 champ text avec 2 autres champs text
    Par Dsphinx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/05/2010, 21h11
  4. Calcul d'un champ par rapport à un autre champ
    Par nomamy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/07/2008, 22h52
  5. Réponses: 6
    Dernier message: 29/05/2006, 19h43

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