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

Langage PHP Discussion :

Somme de valeurs de champs text et affichage conditionnel


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut Somme de valeurs de champs text et affichage conditionnel
    bonjour,

    J'ai 3 champs text avec comme valeur des entiers $_POST['1'], $_POST['2'] et $_POST['3'].
    J'additionne ces 3 champs et je trouve la variable $total.
    Si $total est supérieur a 10 alors j'affiche "plus que 10", inferieur à 10 "moins que 10"

    j'ai ce code mais il ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    $total =  $_POST['1'] + $_POST['2'] + $_POST['3']; 
    if ($total < 10) {echo "moins que 10";} 
    else {echo "plus que 10";} 
    ?>
    S'il quelqu'un aurait un conseil pour mon petit bout de code, je suis preneur.

    Bonne journée

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    "ça ne marche pas" n'est pas un message d'erreur exploitable. Il a falloir nous donner plus de détails...
    Est-ce que tu récupères bien tes 3 champs post ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    J'obtient la valeur 0,

    en réalité lors de l'affichage de la page, il n'y a aucune valeurs dans les 3 champs.

    Ce que je veux c'est que l'internaute tape des entiers dans les 3 champs et que après j'utilise le résultat du code php pour un INSERT dans une base de donnée.

    Les contraintes du php permettent-elles cela ?

  4. #4
    Membre régulier Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par night_flyers Voir le message
    J'obtient la valeur 0,?
    pour quel champ
    Citation Envoyé par night_flyers Voir le message
    en réalité lors de l'affichage de la page, il n'y a aucune valeurs dans les 3 champs.
    pour moi je ne le comprend pas
    dans tout les cas je vous propose ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (isset($_POST['champ1'])){
    settype($n1=$_POST['champ1'],"int");
    et de meme pour champ2 et 3
    en fin de fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $total=$n1+$n2+$n3
    et bon chance

  5. #5
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    merci pour ta réponse,

    j'ai essayé ton code,

    lorsque j'affiche la page les valeurs par défaut des champs sont à 0,
    le total vaut donc 0,

    j'aimerais que si on remplace la valeur d'un champ, le total s'actualise immédiatement.

    Comment peut on obtenir ce résultat ?

    c'est du javascript ou du PHP

    Une sorte de fonction qui recalcule le total périodiquement

    Si quelqu'un à un bout de code sa m'interesse

  6. #6
    Membre régulier Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Points : 99
    Points
    99
    Par défaut
    vérifier que vote code des champ text ne contient pas des valeurs par défaut
    comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="txt" name="txt"  value="0" />
    si le cas il faut les élèminés

  7. #7
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    au final l'addition ne fonctionne pas
    voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if (isset($_POST['xxs'])){settype($n1=$_POST['xxs'],"int");}
    if (isset($_POST['xs'])){settype($n2=$_POST['xs'],"int");}
    $tot=$n1+$n2;
    echo "$tot"; 
    ?>
    pourrais tu me dire ce qui ne marche pas

    merci

  8. #8
    Membre régulier Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par night_flyers Voir le message
    au final l'addition ne fonctionne pas
    voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if (isset($_POST['xxs'])){settype($n1=$_POST['xxs'],"int");}
    if (isset($_POST['xs'])){settype($n2=$_POST['xs'],"int");}
    $tot=$n1+$n2;
    echo "$tot"; 
    ?>
    pourrais tu me dire ce qui ne marche pas

    merci
    normalement le code est prisque bon

    il faut seulement faire attention a ce que qui'est coloré
    donc tu doit mettre
    a la place

  9. #9
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    j'ai corrigé le code comme tu m'a indiqué.

    Je rentre des valeurs dans les deux champs et le total ne change pas il affiche toujours 0

    je ne sais pas d'ou viens le probleme

  10. #10
    Membre régulier Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Points : 99
    Points
    99
    Par défaut
    vérifier que tu n'a pas initialisé votre aprés et en plus des valeurs par défaut parce si vous les mettre il vous envoi meme valeurs meme si tu as changer de valeur des champs

  11. #11
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par agnaou Voir le message
    vérifier que tu n'a pas initialisé votre aprés et en plus des valeurs par défaut parce si vous les mettre il vous envoi meme valeurs meme si tu as changer de valeur des champs
    Ouais justement peut être faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $tot=0;
    if (isset($_POST['xxs'])){settype($n1=$_POST['xxs'],"int");}
    if (isset($_POST['xs'])){settype($n2=$_POST['xs'],"int");}
     
    echo $n1.'<br/>';
    echo $n2.'<br/>';
    $tot=$n1+$n2;
    echo $tot;
    ►Ne pas oublier le

  12. #12
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    bonjour,
    tu peux nous montrer le code pour le formulaire où il y a tes 3 champs ?

  13. #13
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <input type="text" name="xxs" id="xxs" />
    <input type="text" name="xs" id="xs" />
     
    <?php
    $tot=0;
    if (isset($_POST['xxs'])){settype($n1=$_POST['xxs'],"int");}
    if (isset($_POST['xs'])){settype($n2=$_POST['xs'],"int");} 
    echo $n1.'<br/>';
    echo $n2.'<br/>';
    $tot=$n1+$n2;
    echo $tot; ?>
    le code marche parfaitement, cependant je dois appuyer sur enter à chaque fois que je veux voir le nouveau résultat s'afficher.

    Y aurais t-il un moyen pour que le resultat s'actualise sans aucune action de ma part ?

  14. #14
    Membre régulier Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Points : 99
    Points
    99
    Par défaut
    tu peut met un label avec un valeur vide et puis pour l' action onkeyup pour ta deuxieme text tu mettre la valeur du comme valeur du label

  15. #15
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    merci agnaou,

    mais pourrais tu être plus clair stp
    je ne comprend pas

  16. #16
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    Citation Envoyé par night_flyers Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <input type="text" name="xxs" id="xxs" />
    <input type="text" name="xs" id="xs" />
     
    <?php
    $tot=0;
    if (isset($_POST['xxs'])){settype($n1=$_POST['xxs'],"int");}
    if (isset($_POST['xs'])){settype($n2=$_POST['xs'],"int");} 
    echo $n1.'<br/>';
    echo $n2.'<br/>';
    $tot=$n1+$n2;
    echo $tot; ?>
    le code marche parfaitement, cependant je dois appuyer sur enter à chaque fois que je veux voir le nouveau résultat s'afficher.

    Y aurais t-il un moyen pour que le resultat s'actualise sans aucune action de ma part ?
    ça m'étonnerait que ton code fonctionne si tu n'as ni formulaire ni bouton.

  17. #17
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    j'ai deja ce code mais j'ai besoin d'aide pour la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form id="calcul" method="post">
    <label action="ONKEYUP...." >
    <input type="text" id="xxs" />
    <input type="text" id="xs" value="$tot" />
    <?php fonction php ?>
    <label>
    </form>
    pour afficher le résultat j'appuie sur la touche entrer du clavier

  18. #18
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    j'ai fait un code qui pourrait surement te plaire
    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
    19
    20
    21
    22
    <script type="text/javascript">
     
      function total()
      {
        var xxs = parseInt(document.getElementById("xxs").value);
        var xs = parseInt(document.getElementById("xs").value);
        var total = xxs+xs;
     
        if(total > 10)
        {
          document.getElementById("resultat").innerHTML = "plus que 10";
        }
        else
        {
          document.getElementById("resultat").innerHTML = "moins que 10";
        }
      }
    </script>
     
    <input type="text" name="xxs" id="xxs" onChange="return total();" />
    <input type="text" name="xs" id="xs" onChange="return total();" />
    <div id="resultat"></div>
    cela permet de t'afficher ton total sans recharger ta page à chaque changement de valeur dans ton input

  19. #19
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 77
    Points : 44
    Points
    44
    Par défaut
    WWAAaaa alors la c'est carrément génial !

    un grand merci Mitaka pour ce script simple et efficace

    mon problème est de ce fait RESOLU

  20. #20
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    mais de rien
    n'oublie pas de cliquer sur "Résolu"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. javascript vers flash, utiliser la valeur du champ texte dynamique
    Par darkturkey dans le forum ActionScript 1 & ActionScript 2
    Réponses: 9
    Dernier message: 06/12/2007, 13h33
  2. Réponses: 2
    Dernier message: 21/06/2007, 13h40
  3. Attribuer une valeur à un champ texte
    Par areuh_fr dans le forum Langage
    Réponses: 7
    Dernier message: 06/01/2007, 18h10
  4. Réponses: 5
    Dernier message: 15/09/2006, 16h13
  5. utilisation de la valeur du champs texte dans la meme page
    Par dracula2000 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/04/2006, 10h48

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