Comment réaliser une condition sur un id
Résolu/Fermé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
- Comment réaliser une condition sur un id
- Excel cellule couleur si condition texte - Guide
- Réaliser un organigramme - Guide
- Trouver un utilisateur discord avec son id - Forum Discord
- Id de membre perfect money - Forum Logiciels
- S'entrainer a realiser des films dans la ville d'un voisin - Forum Jeux vidéo
16 réponses
4 juil. 2022 à 22:34
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 ??)
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...
7 juil. 2022 à 09:22
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); } });
4 juil. 2022 à 22:48
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question6 juil. 2022 à 20:51
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
6 juil. 2022 à 20:59
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.
6 juil. 2022 à 21:09
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
6 juil. 2022 à 21:54
Mais avec ce que je t'ai donné.. tu devrais parvenir à coder quelque chose par toi même...
6 juil. 2022 à 22:14
J'ai bien trouver quelque chose mais c'est la condition qui me bloque
Je continue sur le forum javascript
6 juil. 2022 à 22:29
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); } });
6 juil. 2022 à 23:22
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.
6 juil. 2022 à 23:32
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 ...
Modifié le 7 juil. 2022 à 07:54
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); } });
7 juil. 2022 à 08:37
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.
Modifié le 7 juil. 2022 à 09:00
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>
7 juil. 2022 à 09:20
console.log(total );
j'ai bien la bonne valeur de ma variable
7 juil. 2022 à 09:28
7 juil. 2022 à 10:00
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>
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> ?
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 ...
Modifié le 7 juil. 2022 à 16:56
a balise p est placée sur le body ...
oui... mais à la fin..
7 juil. 2022 à 16:59
j'ai laisser tomber ce morceau de code et j'ai garder l'alerte
7 juil. 2022 à 19:06
Pense à mettre la discussion en résolue
7 juil. 2022 à 16:21
je vais donc supprimer cette partie et laisser l'alerte