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. 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. 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. 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. <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. 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