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 :

Formulaire : total mis à jour automatiquement ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut Formulaire : total mis à jour automatiquement ?
    Bonjour,

    Tout d'abord merci à tous ceux qui ont participé à la FAQ qui m'a été d'une énorme aide pour en arriver jusqu'ici (un petit pas pour vous, un grand pour moi .

    J'essaie de dresser une liste de prix dans laquelle l'utilisateur peut ajouter la quantité d'objets désirés, le total se mettant automatiquement à jour, sans besoin de rafraîchissement.

    Cette partie là fonctionne, mais pas tout à fait ! En effet, le total final (somme de tous les prix) ne se modifie que si l'on actualise la page. Et si l'on tente de modifier une quantité déjà entrée par la suite, le total ne change pas, sauf de nouveau, si on actualise la page.

    Voilà l'exemple

    Existe-t-il une méthode pour que ça se fasse sans rafraîchissement ? Est-ce que je dois me mettre à AJAX ou bien ce n'est pas nécessaire ? Toute piste sera la bienvenue.

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    ton JS inséré tel quel dans le body ne s'éxécute effectivement qu'au chargement.
    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
    17
    18
    	<head>
    <script type="text/javascript" language="javascript">
    function CalculTout() {
    	variable1 = document.getElementById('biscuits_prix').value;
    	variable2 = document.getElementById('pommes_prix').value;
    	variable3 = document.getElementById('bananes_prix').value;
    	total = parseInt(variable1,10)+ parseInt(variable2,10)+ parseInt(variable3,10);
    	document.getElementById('le_total').innerHTML = total;
    }
    	</script>
    </head>
    <body>
    .....
        <td><strong>total</strong></td>
    	<td></td>
        <td id="le_total">
    	</td>
        <td></td>
    Tu peux appeler CalculTout() à la fin de chaque onkeyup (profites-en pour enlever le "Javascript:" qu'il ne faut pas mettre dans le code des évènements)

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut
    Bonjour E.Bzz et grand merci, ça fonctionne parfaitement !

    Il me reste quelques inquiétudes concernant ce formulaire. S'il faut que j'ouvre un nouveau sujet, que l'on n'hésite pas à me le dire.

    1. Si je n'ajoute qu'un des prix (une des variables) le total me donne "NaN", or je voudrais qu'il considère un champ vide comme 0, est-ce possible ?

    2. Au chargement de la page, il devrait y avoir 0 dans le total, j'ai essayé de créer une fonction supplémentaire (cf. source) lancée par un onload sur le <body> de la page, mais il reste un blanc : je n'ai aucune idée de ce qu'il se passe. Considère-t-il seulement cette fonction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function avant() {
    total = "0";
    }
     
    <body onload="avant();">
    Encore merci !

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Corinne
    1. Si je n'ajoute qu'un des prix (une des variables) le total me donne "NaN", or je voudrais qu'il considère un champ vide comme 0, est-ce possible ?

    2. Au chargement de la page, il devrait y avoir 0 dans le total
    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
    17
    18
    	<head>
    <script type="text/javascript" language="javascript">
    function CalculTout() {
    	variable1 = document.getElementById('biscuits_prix').value;
    	variable2 = document.getElementById('pommes_prix').value;
    	variable3 = document.getElementById('bananes_prix').value;
    	total = parseInt(variable1,10)+ parseInt(variable2,10)+ parseInt(variable3,10);
    	document.getElementById('le_total').innerHTML = (isNaN(total))?"0":total;
    }
    	</script>
    </head>
    <body>
    .....
        <td><strong>total</strong></td>
    	<td></td>
        <td id="le_total">0
    	</td>
        <td></td>
    Comme ça ?

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (isNaN(total))?"0":total
    Ce truc là est un mystère très obscur pour moi !
    Cela dit il marche pour le point 2 !

    Pour le point 1 j'ai suivi l'exemple aussi et l'ai appliqué à mes champs en ajoutant un value=0 initial.

    Encore mille mercis !

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Corinne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (isNaN(total))?"0":total
    Ce truc là est un mystère très obscur pour moi !
    Cela dit il marche pour le point 2 !
    Non : le point 2), c'est le "0" en dur ajouté dans le code html

    Sinon : isNaN() = Is Not A Number ?

    =>
    Total n'est pas un nb ?
    => si true => "0"
    => si false (total est un nb) => affiche le total

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition if)?si true:si false;
    A+

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

Discussions similaires

  1. Mis à jour automatique
    Par AMO05 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/05/2009, 09h06
  2. Desactiver la mis à jour automatique de jws
    Par Dx_ter dans le forum JWS
    Réponses: 2
    Dernier message: 16/03/2009, 15h51
  3. [outils] Diagramme mis à jours automatiquement
    Par cysboy dans le forum Outils
    Réponses: 14
    Dernier message: 12/11/2007, 08h43
  4. Mis à jour automatique signature
    Par Vinceee38 dans le forum Windows XP
    Réponses: 7
    Dernier message: 24/05/2007, 16h20
  5. [MySQL] erreur php sur un formulaire de mis à jour
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 06/04/2006, 13h39

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