Comment réaliser une condition sur un id

Résolu
Bonjour a tous
Dans mon bon de commande j'ai un id
id="total_qte"

Je souhaiterais pouvoir afficher un message si le id="total_qte" est égal a 0

un genre a ceci

	<?php
if ?>( id="total_qte"==0) <?php{
    echo "le nombre est 0";
} 
?>


Merci de l'aide

16 réponses

  1. Modérateur
    Bonjour,

    Alors déjà.. ta question ne concerne en aucun cas le HTML mais, à priori, le PHP ....

    Avec si peu d'informations.. impossible de te répondre (hormis sur le fait que tu ne peux pas traiter des éléments via leur ID en php).

    La page en question.. c'est un formulaire pour remplir un bon de commande .... ou un récapitulatif d'un bon de commande ?

    Si recap, tu disposes donc des données provenant d'une requête sql
    Si c'est le formulaire lui même.. soit tu "submit" ton formulaire et là tu pourras traiter les données de celui-ci en php ( à condition de bien mettre un attribut NAME à chaque élément de ton formulaire)
    Soit, si tu veux pouvoir le faire sans envoyer le formulaire, utiliser du Javascript .

    Pour une réponse plus aboutie .. il faut que tu nous montres le code html/php COMPLET ... (en pensant bien à nous indiquer le nom du/des fichiers dont tu nous partages le code)
    et en expliquant exactement ce que tu souhaites réaliser et les conditions dans lesquelles cela doit de passer ( un click sur un bouton ? le remplissage ou la modification de la valeur d'un champ ? autre chose ??)

    1. bonsoir jordane

      Merci pour taon aide et la réponse
      Mais au vu que demain je dois bosser et donc me lever très tôt
      Je reviendrais demain ou mercredi

      Car je dois te présenter du code bien propre
      Ce qui va de soi

      Bonne soirée
      1. Bonsoir a tous

        voici enfin ma réponse et mes codes
        donc pour répondre c'est un bon de commande qui est valider par un bouton donc je n'ai pas de submit
        lorsque je clic sur id="commander" ma commande est traitée
        les éléments traitables sont des ID qui sont défini dans le fichier panier.js et appelle dans index.php
        je ne joins que le fichier php et le fichier javascript
        Je ne vois pas l'utilité de joindre celui qui envois les mails et qui enregistre dans al base de donnee

        je ne parviens pas a poster les codes
        j'ai un message d'erreur qui me dis que le corps de mon message lorsque je veux ajouter mes codes
        1. Modérateur
          Si je comprend bien .. tu as un élément ( un bouton ) dont l' id est "commander'"
          et tu veux qu'au clic sur ce bouton, ça aille regarder ton élément dont l'id est total_qte et, si la valeur de cet élément est égale à zéro tu affiches un message...

          Donc.. en gros.. ce n'est pas non plus une question php .. mais javascript ...

          il te suffit donc de mettre un écouteur d'évènement sur le click du bouton..
          Pour ça, regarde : addEventListerner
          Et afficher un message.. tu peux juste utiliser un "alert()" en javascript.
      2. Merci pour la réponse jordane
        En effet au vu de ta réponse cela est bien du javascript

        Tu as bien deviné de ce que je désire
        je peux continuer ici ou alors je repose ma question en javascript
        1. Modérateur
          je la déplace.

          Mais avec ce que je t'ai donné.. tu devrais parvenir à coder quelque chose par toi même...
      3. Merci jordane
        J'ai bien trouver quelque chose mais c'est la condition qui me bloque
        Je continue sur le forum javascript
        1. donc voici ce que j'ai trouvé pour afficher le message
          Mais je ne vois pas comment y mettre la condition pour id est total_qte

          var btn = document.querySelector('#commander);
          
          // addEventListener 
          btn.addEventListener('click', function(){
            var p = document.createElement('p');
            p.innerText = 'Votre commande a déjà été envoyée;
            document.body.appendChild(p);
          });


          peut être de cette Facon

          var btn = document.querySelector('#commander);
          
          // addEventListener 
          btn.addEventListener('click', function(){
          	
          	if (id="total_qte"== 0){
                    var p = document.createElement('p');
            p.innerText = 'Votre commande a déjà été envoyée;
            document.body.appendChild(p); }
          	
          });
          1. Modérateur
            Regarde dans le code que tu nous montres, comment tu cibles le bouton via son id
            Il faut faire la même chose pour le chant qui contient ta quantité...
            Ensuite, ce champ si c'est un input, dispose d'une propriété value.
            C'est grâce à elle que tu pourras en lire le contenu.
        2. simple cela doit l'être mais je cherche des exemple sans vraiment en trouver avec une condition

          je devrais donc ajouter
          var btn1 = document.querySelector('#total_qte);

          Mais le champ total_qte n'est pas un input c'est le total de la somme de toutes les quantités commandée

          Moi et le javascript c'est pas simple ...
          1. Modérateur
            Moi et le javascript c'est pas simple ...

            Si seulement ce n'etait que le javascript... :-)

            donc:
            document.querySelector('#total_qte);
            

            ça .. OK.

            A noter que tu peux aussi utiliser la syntaxe
            document.getElementById('total_qte')
            

            ça revient au même...

            Par contre... vu que tu as déjà une variable btn (pour ton bouton) il serait judicieux d'utiliser un autre nom pour ta variable..

            Ensuite

            Mais le champ total_qte n'est pas un input c'est le total de la somme de toutes les quantités commandée

            je ne te demande pas à quoi ça sert ... mais.. quel genre d'élément html c'est...

            En gros...
            Si c'est un élément de saisie (pour les formulaires) tel que input, select, textarea .. dans ce cas, pour lire la valeur c'est avec le .value
            Si c'est autre chose ( une div, un span .. ou tout autre élément html qui ne soit pas un truc de saisie...), il faut utiliser la propriété innerHTML

            Un truc existe qui permet, en général, de trouver assez facilement les réponses aux questions que tu nous poses... c'est un moteur de recherches..
            Par exemple, dans ton cas, tu pourrais faire une recherche du genre
            https://www.google.com/search?q=javascript+lire+valeur+div

            Bien entendu, j'ai mis pour une DIV .. mais tu peux mettre n'importe quoi d'autre en rapport avec ton besoin...
            1. <span id="total_qte"></span>

              Merci jordane pour l'explication et l'aide
              C'est vrai et j'avoue que cela est très limité chez moi la compréhension de tous ces codes
              Mais je dois dire que sur plus d'un an j'ai appris beaucoup de choses et cela m'a beaucoup aider
              c'est plus facile lorsque cela est manipulé jour après jour
              Encore et encore ...ce qui est loin d'être mon cas

              Je ne savais pas que je pouvais récupérer des éléments en javascript par exemple

              oui oui google je connais et faire une recherche aussi , il suffit juste de savoir ce que l'on recherche

              Donc voila
              Dans mon code je dois récupérer un ID qui est celui-ci

              <span id="total_qte"></span> 


              ce qui reviens a
              var total=document.getElementById('total_qte').innerHTML 


              donc le code pourrait devenir ceci

              var btn = document.querySelector('#commander);
              var total=document.getElementById('total_qte').innerHTML ;
              
              // addEventListener 
              btn.addEventListener('click', function(){
               
               if (var total== 0){
                        var p = document.createElement('p');
                p.innerText = 'Votre commande a déjà été envoyée;
                document.body.appendChild(p); }
               
              });
              
              
              1. Modérateur
                presque
                sauf que le total, tu ne dois le récupérer qu'après avoir cliqué sur le bouton.
                Il faut donc déplacer ta ligne 2 à la ligne 6

                et pour la comparaison, il faut mettre des quotes autour du 0.
            2. Merci jordane
              j'ai du réaliser quelques petites corrections pour ne plus avoir d'erreur dans la console
              Mais cela ne me retourne rien si le id total_qte est égal a 0 lorsque je clique sur commander

              mon bouton commander ressemble a ceci

              <button type="button" class="btn btn-success" id="commander"><h3>Valider la commande</h3></button>

              voici mon code
                <script>
                var btn = document.querySelector('#commander');
              
              
              // addEventListener 
              btn.addEventListener('click', function(){
               var total=document.getElementById('total_qte').innerHTML ;
               if ( total==' 0'){
                        var p = document.createElement('p');
                p.innerText = 'Votre commande a déjà été envoyée';
                document.body.appendChild(p); }
               
              });
                </script>
              1. pourtant lorsque je fais ceci dans mon code
                 console.log(total );

                j'ai bien la bonne valeur de ma variable
                1. Modérateur
                  Fais un console.log de la variable et dis moi ce que ça te donne dans la console
                   var btn = document.querySelector('#commander');
                  
                  
                  // addEventListener 
                  btn.addEventListener('click', function(){
                   var total=document.getElementById('total_qte').innerHTML ;
                    console.log('TOTAL',total);
                     if ( total== '0' || parseFloat(total)==0){ // tu avais un espace entre la quote et le zéro..
                         alert("Total = 0" );
                            var p = document.createElement('p');
                        p.innerText = 'Votre commande a déjà été envoyée';
                        document.body.appendChild(p);
                      } 
                  });
                  
                  

                  1. merci jordane pour le code et la correction
                    cela semble fonctionner a présent
                    dans ma console j'ai ceci
                    TOTAL 0

                    et voici ce que je vois a l'écran
                    1. Modérateur
                      Tu peux donc retirer l'alert et mettre le sujet en résolu.
                  2. jordane un grand merci pour l'aide

                    mais lorsque je remets l'alerte en commentaire 

                    mon message d'erreur ne s'affiche pas

                    		<script>
                     var btn = document.querySelector('#commander');
                    
                    
                    // addEventListener 
                    btn.addEventListener('click', function(){
                     var total=document.getElementById('total_qte').innerHTML ;
                      console.log('TOTAL',total);
                       if ( total== '0' || parseFloat(total)==0){ // tu avais un espace entre la quote et le zéro..
                           //alert("Aucun article sélectionner ou votre commande a déjà été envoyée" );
                              var p = document.createElement('p');
                          p.innerText = 'Votre commande a déjà été envoyée';
                          document.body.appendChild(p);
                        } 
                    });
                    		</script>
                    1. Modérateur

                      As tu des erreurs dans la console ?

                      Et puis.. Comprends tu au moins tes lignes de code

                       
                        var p = document.createElement('p');
                            p.innerText = 'Votre commande a déjà été envoyée';
                            document.body.appendChild(p);

                      Comprends tu où il va placer ta balise <p> ?

                  3. merci pour la réponse

                    non aucune erreur dans la console

                    On crée l'élément HTML vide de contenu p

                    ensuite on lui donne une valeur

                    ca y est je viens de voir l'erreur

                    la balise p est placée sur le body ...

                    1. Modérateur

                      a balise p est placée sur le body ...

                      oui... mais à la fin..

                    2. @jordane45

                      j'ai laisser tomber ce morceau de code et j'ai garder l'alerte 

                    3. Modérateur
                      @flexi2202

                      Pense à mettre la discussion en résolue