Menu

Récupération des conditions d'un IF [Résolu]

Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
- - Dernière réponse : hashux
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
- 19 mars 2019 à 14:56
Bonjour à tous

Le code ci-dessous m'affichera très logiquement une erreur pour les conditions non remplies:
if(isset($A) || isset($B) || isset($C)){
echo $A;
echo $B;
echo $C;
}


Je dois donc utiliser le code suivant:
if(isset($A) || isset($B) || isset($C)){
if(isset($A)){echo $A;}
if(isset($B)){echo $B;}
if(isset($C)){echo $C;}
}

mais j'aimerais ne pas devoir revérifier chaque conditions.
Y a-t-il moyen de simplifier, de récupérer directement la ou les conditions qui ont validé le IF?

Merci pour votre aide
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
24962
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mars 2019
1898
1
Merci
Renomme tes checkbox en format array

par exemple :
<td><input type="checkbox" name="p1[]" value="Préservé" /></td>
<td><input type="checkbox" name="p1[]" value="Sauvé" /></td>
<td><input type="checkbox" name="p1[]" value="Valorisé" /></td>


Et regarde ensuite dans ton formulaire ce que contient $_POST['p1'] ( si en post ) ou $_GET['p1'] (si en get... )

Tu verras que tu obtiens un array avec la/les cases cochées....
Ne te reste plus qu'à boucler dessus pour faire ton affichage...
par exemple

$p1 = !empty($_POST['p1']) ? $_POST['p1'] : NULL;

if($p1){
  foreach($p1 as $V ){
     echo "<br>".$V;
  }
}


Tu n'as plus qu'à faire pareil avec p2 ...

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 49227 internautes nous ont dit merci ce mois-ci

jordane45
Messages postés
24962
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mars 2019
1898 -
Au passage, merci de poster, à l'avenir, correctement ton code ( en indiquant le langage dans les balises de code afin d'avoir la coloration syntaxique comme dans les codes que je te donne )
Explications sur le fonctionnement des balises de code disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Merci.
Commenter la réponse de jordane45
Messages postés
24962
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mars 2019
1898
0
Merci
Bonjour,
Si ton but est d"afficher le contenu des variable que si elles sont remplis... pas besoin de ton premier if
if(isset($A)){echo $A;}
if(isset($B)){echo $B;}
if(isset($C)){echo $C;}

Quoi qu'il en soit, il est préférable de récupérer proprement les variables avant de les utiliser...
Je t'invite à lire ceci : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

hashux
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
-
Bonjour
En fait, j'ai oublié un petit bout de code :
if(isset($A) || isset($B) || isset($C)){
echo "l'utilisateur a coché la ou les cases suivantes:";
if(isset($A)){echo $A;}
if(isset($B)){echo $B;}
if(isset($C)){echo $C;}
}

J'affiche un message si 1 ou plusieurs conditions sont remplies et ensuite, la condition.
jordane45
Messages postés
24962
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mars 2019
1898 > hashux
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
-
Tu parles de cases ...
Je suppose donc que ce sont des checkbox ....
Comment les as tu créé ?
Quel nom leur as tu donné ?
Comment les récupères tu ? En post ou en get ?
hashux
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
-
Oui, des checkbox que je récupère en POST
J'ai simplifié le code ici pour plus de clarté
C'est un formulaire html, les gens peuvent cocher 0, 1, 2 ou 3 cases
Elles ont chacune un nom différent : chk1 chk2 et chk3
jordane45
Messages postés
24962
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mars 2019
1898 > hashux
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
-
y'a t'il un intérêt à ce qu'elles aient des noms différents ? Pourquoi ne pas utiliser un array ?
C'est pour ça que je t'ai demandé le code "html" de tes checkbox
Commenter la réponse de jordane45
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
0
Merci
<table><form action="send.php"><tr>
<td style="text-align:left;"><label><input type="checkbox" name="p1" value="commerces"/> Des commerces</label></td>
<td>→ <input type="text" name="ex-1" size="23" /></td>
<td><input type="checkbox" name="p1p" value="Préservé" /></td>
<td><input type="checkbox" name="p1s" value="Sauvé" /></td>
<td><input type="checkbox" name="p1v" value="Valorisé" /></td>
</tr>
<tr>
<td style="text-align:left;"><label><input type="checkbox" name="p2" value="logements"/> Des logements</label></td>
<td>→ <input type="text" name="ex-2" size="23" /></td>
<td><input type="checkbox" name="p2p" value="Préservé" /></td>
<td><input type="checkbox" name="p2s" value="Sauvé" /></td>
<td><input type="checkbox" name="p2v" value="Valorisé" /></td>
</tr>
<tr>
<td colspan="5"><hr /><input type="submit" value="Envoyer le formulaire" /> | <input type="reset" value="Effacer tout" /></td>
</tr></form></table>
Commenter la réponse de hashux
Messages postés
12
Date d'inscription
jeudi 25 mai 2006
Dernière intervention
19 mars 2019
0
Merci
Merci jordane45 pour ton aide.
J'essaierai d'être plus clair pour ma prochaine question ;)
Commenter la réponse de hashux