Comment réaliser une condition sur un id

Résolu
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  4. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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.
      1
  7. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      je la déplace.

      Mais avec ce que je t'ai donné.. tu devrais parvenir à coder quelque chose par toi même...
      1
  8. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    Merci jordane
    J'ai bien trouver quelque chose mais c'est la condition qui me bloque
    Je continue sur le forum javascript
    0
  9. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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); }
    	
    });
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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.
      1
  10. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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 ...
    0
  11. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    <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); }
     
    });
    
    
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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.
      1
  12. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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>
    0
  13. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    pourtant lorsque je fais ceci dans mon code
     console.log(total );

    j'ai bien la bonne valeur de ma variable
    0
  14. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     
    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
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Tu peux donc retirer l'alert et mettre le sujet en résolu.
      1
  15. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     

    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>
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

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

      1
  16. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     

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

    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

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

      oui... mais à la fin..

      1
      1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         

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

        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
         

        Pense à mettre la discussion en résolue

        1
  17. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     

    je vais donc supprimer cette partie et laisser l'alerte

    0