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

Signaler
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
-
jordane45
Messages postés
27304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2020
-
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> 

5 réponses

Messages postés
27304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2020
322
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);
}




Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

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
Messages postés
14620
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2020
138
Il te manque un ; à la fin de ta chaine et tu n'as pas échapper les " de l'ancre avec \
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

s'il vous plait comment on échappe l'ancre
jordane45
Messages postés
27304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2020
322
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
Messages postés
27304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2020
322
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 ??