Récupération des conditions d'un IF

Résolu/Fermé
hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019 - 5 mars 2019 à 11:59
hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre 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

4 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
12 mars 2019 à 18:00
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 ...
1
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
12 mars 2019 à 18:02
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.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
5 mars 2019 à 23:56
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 : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

0
hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019
Modifié le 6 mars 2019 à 09:10
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.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019
6 mars 2019 à 10:34
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 ?
0
hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019
Modifié le 6 mars 2019 à 10:56
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
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019
6 mars 2019 à 12:20
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
0
hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019
12 mars 2019 à 16:30
<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>
0
hashux Messages postés 12 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 19 mars 2019
19 mars 2019 à 14:56
Merci jordane45 pour ton aide.
J'essaierai d'être plus clair pour ma prochaine question ;)
0