Faire afficher un bloc sa variable dynamiquement [Résolu]

Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
- - Dernière réponse : jordane45
Messages postés
25975
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juillet 2019
- 5 févr. 2014 à 14:22
Bonjour,
je veux faire afficher le bloc et sa variable dynamiquement quant la variable est non nul et ne pas afficher quand la variable est nul.

Le code

<div class="casting_description" style=" border:solid 1px #999999; background:#EAEAEA; border-radius:2px;"><!-- critère de recherche -->
		 <?php
		function show_caract($id,$valeur){
		    echo"
			<a href="#" title="voir les castings ayant ce critère" class="competence-annonce">? $id.":".$valeur </a>"
		     }
			if($criCorpulence!=''){
			 show_caract("corpulence:",$criCorpulence);
			}
			elseif($criEyesColor!=''){ 
			show_caract("couleur des yeux:",$criEyesColor);
			}
			elseif($criSkinColor!=''){
			show_caract("Couleur de Peau:",$criSkinColor);
			}
			elseif($criWeightFrom!=''&& $criWeightTo!=''){
			show_caract("Taille:",$criWeightFrom "a" $criWeightTo,"m");
			}
			/*affichage de la corpulence,la couleur des yeux et la taille*/
			elseif($criCorpulence!=''&& $criEyesColor!=''){
			show_caract("corpulence:",$criCorpulence,"couleur des yeux:",$criEyesColor);
			}
			elseif($criCorpulence!=''&& $criSkinColor!=''){
			show_caract("corpulence:",$criCorpulence,"Couleur de Peau:",$criSkinColor);
			}
			elseif($criCorpulence!=''&& $criWeightFrom!=''&& $criWeightTo!=''){
			show_caract("corpulence:",$criCorpulence,"Taille:",$criWeightFrom, "a" ,$criWeightTo,"m");
			}
			/*affichage de la couleur de la peau, couleur des yeux et la taille*/
			elseif($criEyesColor!=''&& $criSkinColor!=''){
			show_caract("couleur des yeux:",$criEyesColor,"Couleur de Peau:",$criSkinColor);
			}
			elseif($criEyesColor!=''&& $criWeightFrom!=''&& $criWeightTo!=''){
			show_carat("couleur des yeux:",$criEyesColor,"Taille:",$criWeightFrom "a" $criWeightTo,"m");
			}
			elseif($criSkinColor!=''&& $criWeightFrom!=''&& $criWeightTo!=''){
			show_carat("Couleur de Peau:",$criSkinColor,$criEyesColor,"Taille:",$criWeightFrom "a" $criWeightTo,"m");
			}
			/*affichage de toutes les caracteristique du casting*/
			elseif($criSkinColor!=''&& $criWeightFrom!=''&& $criWeightTo!=''&& $criCorpulence!=''&& $criEyesColor!=''){
			show_carat("Couleur de Peau:",$criSkinColor,"Taille:",$criWeightFrom "a" $criWeightTo,"corpulence:",$criCorpulence,"couleur des yeux:",$criEyesColor);
			}
			
			?>
			
			  
        </div> 
Afficher la suite 

5 réponses

Messages postés
25975
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juillet 2019
313
0
Merci
Attention avec les If imbriqués...

Là, tu testes si $criCorpulence!='' et si ce n'est pas le cas tu regarde dans le (elseif) suivant...
Donc.. dès que l'une de tes conditions sera vrai..il n'ira pas voir les autres....

Il faut que tu fasses des blocs "if" pour chacun de tes critères..

if($criCorpulence!=''){
 show_caract("corpulence:",$criCorpulence);
}

if($criEyesColor!=''){ 
 show_caract("couleur des yeux:",$criEyesColor);
}

if($criSkinColor!=''){
 show_caract("Couleur de Peau:",$criSkinColor);
}




Commenter la réponse de jordane45
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
0
Merci
mais actuellement quand je lance dans le navigateur on me signifie qu'il ya des erreurs a la ligne 6

voila ce qui s'affiche dans le navigateur:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp_\htdocs\nid2stars\castings_postuler.php on line 250
Commenter la réponse de gbammelet
Messages postés
14504
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juillet 2019
131
0
Merci
Il te manque un ; à la fin de ta chaine et tu n'as pas échapper les " de l'ancre avec \
Commenter la réponse de NHenry
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
0
Merci
s'il vous plait comment on échappe l'ancre
jordane45
Messages postés
25975
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juillet 2019
313 -
Nhenry t'a donné la réponse...
tu n'as pas échapper les " de l'ancre avec \
Penses également que tu disposes d'un moteur de recherche... google est ton ami comme on dit... et en tapant "PHP Échapper caractères " tu aurais pu trouver :
http://www.php.net/manual/fr/language.types.string.php
Commenter la réponse de gbammelet
Messages postés
25975
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juillet 2019
313
0
Merci
Tu as un message d'erreur à la ligne 6 ??
( pourquoi ne pas avoir commencé par nous dire ça ???)

Enfin bon...

Ligne 6 => C'est la fin de ta fonction...
Si il te dit qu'il y a une erreur à la ligne 6.. c'est soit qu'il y a une erreur à cette ligne là.. soit une ligne plus haut ( ou quelques lignes plus haut)...
Donc...on va regarder le code de ta fonction

function show_caract($id,$valeur){
    echo "<a href="#" title="voir les castings ayant ce critère" 
                   class="competence-annonce">? $id.":".$valeur </a>"
     }


Il semble que tu ais un souci sur cette partie du code :
">? $id.":".$valeur </a>"

- Tes " ne sont pas biens situés... et tu en as oublié....
- De plus.. tu utilises des " au milieu d'autres " ... il faut donc :
Soit les remplacer par des quotes simple, soit les "echapper" ( en utilisant le \ )
- enfin.. tu as aussi oublié un point-virgule à la fin...
function show_caract($id,$valeur){
    echo "<a href='#' title='voir les castings ayant ce critère' 
                   class='competence-annonce'>".$id.":".$valeur." </a>";
     }


NB : Lorsque tu as des messages d'erreur... DIS LE NOUS et MONTRE LES NOUS !

NB2 : Prends le temps de regarder ces messages d'erreur et d'en comprendre la raison avant même de venir nous poser la question...
Vu le nombre d'erreurs dans cette simple ligne de code.. tu aurais du, au moins en trouver une partie tout seul..non ??
Commenter la réponse de jordane45