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

  1. #1
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    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 sénior

    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
    Points : 36 571
    Points
    36 571
    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+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    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 sénior

    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
    Points : 36 571
    Points
    36 571
    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+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    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 sénior

    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
    Points : 36 571
    Points
    36 571
    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+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Désolée, j'ai inversé les points je crois
    Merci pour les explications, c'est déjà beaucoup plus clair

  8. #8
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Et une petite dernière question (normalement !) pour la route.

    J'essaie de mettre les résultats du onkeypress (le coût des objets) en texte, hors d'un champ, tout comme le total. Mais si je mets juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td id="biscuits"> (source modifiée depuis hier)
    Rien ne se passe. Une idée d'où se trouve l'erreur s'il vous plaît ? Merci !

  9. #9
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Corinne
    Rien ne se passe.
    Si : tu as ajouté une colonne
    ... sauf si tu as oublié le </td>

    Ajoute dans CalculTout() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('biscuits').innerHTML = variable1;
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par E.Bzz
    Si : tu as ajouté une colonne
    ... sauf si tu as oublié le </td>
    Oui, bon

    Essayé ta dernière solution, mais pas pu :/ On dirait qu'il ne se passe rien

  11. #11
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Corinne
    Ben oui, mais tu as aussi enlevé l'input "biscuits" alors qu'il est toujours utilisé dans ta fonction ...

    Sinon, pour y accéder, la syntaxe correcte est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('biscuits').value // ou .innerHTML si c'est le td
    document.getElementById() pour tout accès via l'ID. Les "raccourcis" de syntaxe sont souvent obsolètes ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Ouille !

    Bon alors pour supprimer l'input (si j'ai bien compris) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function calcule() {
    biscuits_prix = document.getElementById('biscuits').innerHTML;
    }
     
    et dans mon HTML :
     
    <td><input type="text" onkeyup="biscuits.innerHTML=(1*this.value); calcule();" /></td>
    <td id="biscuits">0</td>
    (seulement ça marche pas , je me sens toute nulle !)

  13. #13
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz
    document.getElementById() pour tout accès via l'ID. Les "raccourcis" de syntaxe sont souvent obsolètes ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onkeyup="document.getElementById('biscuits').innerHTML=(1*this.value); calcule();"
    ??
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  14. #14
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onkeyup="document.getElementById('biscuits').innerHTML=(1*this.value); calcule();"
    OK, je vois maintenant où j'avais (involontairement) fort bien raccourci

    Je ne sais pas si j'ai bien tout intégré ou pas, je vais encore plancher là-dessus un moment j'imagine Encore merci !

  15. #15
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Corinne
    Je ne sais pas si j'ai bien tout intégré ou pas, je vais encore plancher là-dessus un moment j'imagine Encore merci !
    De rien, et bon courage

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ 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