Comment réaliser une condition sur un id

Résolu/Fermé
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - Modifié le 4 juil. 2022 à 21:50
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 - 7 juil. 2022 à 19:06
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

jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
4 juil. 2022 à 22:34
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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
6 juil. 2022 à 23:47
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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
7 juil. 2022 à 09:22
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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
4 juil. 2022 à 22:48
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
6 juil. 2022 à 20:51
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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
6 juil. 2022 à 20:59
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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
6 juil. 2022 à 21:09
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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
6 juil. 2022 à 21:54
je la déplace.

Mais avec ce que je t'ai donné.. tu devrais parvenir à coder quelque chose par toi même...
1
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
6 juil. 2022 à 22:14
Merci jordane
J'ai bien trouver quelque chose mais c'est la condition qui me bloque
Je continue sur le forum javascript
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
6 juil. 2022 à 22:29
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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
6 juil. 2022 à 23:22
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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
6 juil. 2022 à 23:32
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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 7 juil. 2022 à 07:54
<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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
7 juil. 2022 à 08:37
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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 7 juil. 2022 à 09:00
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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
7 juil. 2022 à 09:20
pourtant lorsque je fais ceci dans mon code
 console.log(total );

j'ai bien la bonne valeur de ma variable
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
7 juil. 2022 à 09:28
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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
7 juil. 2022 à 10:00
Tu peux donc retirer l'alert et mettre le sujet en résolu.
1
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
7 juil. 2022 à 15:56

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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
Modifié le 7 juil. 2022 à 16:01

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
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
7 juil. 2022 à 16:19

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
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
Modifié le 7 juil. 2022 à 16:56

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

oui... mais à la fin..

1
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187 > jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024
7 juil. 2022 à 16:59

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

0
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703 > flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024
7 juil. 2022 à 19:06

Pense à mettre la discussion en résolue

1
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
7 juil. 2022 à 16:21

je vais donc supprimer cette partie et laisser l'alerte

0