Impossible de faire fonctionner une condition
Résolu/Ferméflexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 17 août 2022 à 08:57
- Impossible de faire fonctionner une condition
- Excel cellule couleur si condition texte - Guide
- Faire fonctionner chromecast - Guide
- Condition et excel - Guide
- Peut on faire fonctionner une clim sans télécommande - Forum Matériel & Système
- Changer la couleur d'une cellule selon son texte - Forum Excel
4 réponses
16 août 2022 à 09:49
Bonjour,
En PHP, utilise de préférence le && au lieu de and
Et quand tu n'as que des "and" .. pas besoin de parenthèses pour priosier.
Et enfin.. le "différent" ( comme je te l'ai déjà dit il me semble) se teste avec le "not equal" : != ou !== et pas les <>
puisque 19.80 + 2.20 est égal a 22
Oh, ce n'est pas si sûr que cela : 19.80 + 2.20 vaut probablement 21.9999999. Revoyez votre cours sur les nombres flottants.
17 août 2022 à 01:24
Merci de la réponse
en effet mais le soucis vient de mes boutons radios
Modifié le 16 août 2022 à 10:37
Malheureusement non
alors que la condition n'est pas respectée il affiche le message d'erreur
16 août 2022 à 10:46
pourtant lorsque je vois cette copie d'écran
prix_depart "22"
promotioncases "20"
promotionpourcentageinverse "2.20"
promotionpourcentage "19.80"
promotion "10"
avec une telle condition qui n'est pas réunie cela devrait fonctionner je ne devrais pas voir un message d'erreur de modal
puisque 19.80 + 2.20 est égal a 22 et mon erreur devrait s'afficher si justement si ils ne sont pas égaux
Modifié le 16 août 2022 à 20:55
Oui Jordanne et pour cela que j'ai rajouter une condition avec ce if
Mais ca ne fonctionne toujours pas
après une montagne de test je viens de me rendre compte d'une anomalie
Mes conditions semblent fonctionner tant que je ne clic pas sur un bouton radio d'un autre groupe en l'occurrence celui des livraisons
je m'explique
ma première condition est de savoir si oui ou non il y a des articles dans le panier
ma deuxième condition est de savoir si l'utilisateur a cocher un autre bouton radio que le premier de mon groupe promotion
voici les deux conditions
//si quanditee est egal a 0 if ($total_qte_bas == '0') { $error = "0-18";} //je verifie si le bouton avec la valeur 10 n'est pas coche else if ($promotioncases == '10') { $error = "0-20";}
ensuite vient seulement les tests ou j'ai des soucis
Par accident j'ai fait un test
si je clique sur commander
on me demande bien d'ajouter des articles
ensuite je clic sur commander
L'erreur survient me demandant de choisir autre chose que le bouton avec la valeur 10
Donc tout va bien ....
Par contre dans le deuxième test
Je clique d'abord sur ma première liste de bouton radio qui concerne la livraison et j'en coche 1 ,avant toute chose
puis je clic sur commander
j'ai bien l'erreur que je dois ajouter des articles
Je les ajoutes
ensuite je clic sur commander
Et la surprise il passe la condition du bouton radio pour le code promo
Voici donc la manière dont le premier bouton radio est récupéré en javascript donc le bouton des livraison
/on commence par recuperer des informations lorsque on clic sur un choix de livraison const cases = document.querySelectorAll('input[name="choix_livraison"]'); for (const x of cases) {//debut const x of cases if (x.checked) { //si une case est cochee on recupere 2 variables let nom_choix_livraison = x.dataset.nom; let prix_choix_livraison = x.value; //on definit le prix total et la livraison let prix_et_livraison = (( (MonPanier.totalpanier()))) + Number(prix_choix_livraison) ;
et voici le bouton radio
<div class="col-sm "> <input type="radio" name="choix_livraison" class="choix_livraison articleBtnposteinvisible" checked="checked" data-lang="de" data-nom="" value="" onclick="ouvreMaJolieAlertposte(event,' ');"> Par poste enveloppe (je ne suis pas responsable des pertes éventuelles) 1,10 euros </div>
Ensuite il y a les boutons radios pour afficher ou cacher le code promo
<label> <!-- je cache le premier bouton --> <input type="radio" name="promotioncases" id="black" data-target="10" value="10" checked style="display: none;" /> </label> <label> <!-- si ce bouton est sélectionner une div apparaît avec le le input pour rentrer le code promo --> <input type="radio" name="promotioncases" id="red" data-target="20" value="20">j'ai un code </label> <div id="20" class="descendre"> j'ai sélectionne 2 <form name="form" id="forms"> Enter name: <input type="text" id="name"> <input type="button" value=" Click Up"> <p id="prix_depart_promo"></p> <p id="print"></p> </div> <label> <input type="radio" name="promotioncases" id="vert" data-target="30" value="30" />Pas de code </label>
Et voici la manière dont je le traite
var promotioncases = document.querySelector('input[name=promotioncases]:checked').value;
je ne vois pas trop comment ces boutons peuvent se mélanger
16 août 2022 à 21:42
Ce n'est pas avec des petits bouts de code pris par-ci par-là que je vais être capable de comprendre le bordel de ton script...
Quoi qu'il en soit il semble donc bien que ça ne soit pas un souci au niveau des conditions ( sujet initial de ta question) mais un problème de fonctionnement, de logique, de ton code.
Je t'invite donc à analyser le fonctionnement de ton code pour déterminer à quel endroit les variables restent mémorisées alors qu'elle ne le devraient pas
17 août 2022 à 01:27
Merci pour la réponse jordane
c'est vrai que des petits morceaux de code ne vont pas aider
Mais a la longue de faire des ajout mon code devient de plus en plus long
Je vais donc repartir sur une bonne sauvegarde de mon site et voir comment mettre en place ce coupon
Je m'attendais pas a autant de de difficultés
existe t il un moyen pour connaître si les variables restent en mémoire
17 août 2022 à 03:37
Commence par regarder la console lors de l'appel ajax (l'onglet requête permettant de voir ce qui est envoyé par l'Ajax)
17 août 2022 à 08:57
voila je pense que j'ai trouve le soucis j'avais les deux codes des boutons radios qui étaient imbriques l'un dans l'autre dans le code de javascript
j'ai donc un peux changer le code et on verra
Encore merci
Modifié le 16 août 2022 à 10:03
bonjour jordane
Merci pour la réponse
j'ai déjà essayer aussi comme tu expliques mais cela ne me retourne pas l'erreur de la modal
mais dans mon code qui ne fonctionne pas pas je n'avais pas que que des AND puisque j'avais aussi un operateur d'inégalité
voici mon dernier essai
Mais sans succès
16 août 2022 à 11:13
revient au même que
Quoi qu'il en soit, si tu n'entres pas dans ces elseif .. c'est que tes variables ne contiennent pas c eque tu penses...
Fais donc des var_dump de chacune de ces variables AVANT le IF et regarde ce que ça te retourne...
16 août 2022 à 12:58
Merci jordane
voila mon code avec les var_dump
et voici le code php
Pour rappel
16 août 2022 à 16:02
Normal que tu n'entres pas dans ton elsif puique ta variable n'est pas vide ni à zéro