Faire afficher un bloc sa variable dynamiquement

Résolu
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
- 5 févr. 2014 à 12:33
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
- 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> 

5 réponses

jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
5 févr. 2014 à 12:42
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);
}




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

5 févr. 2014 à 12:57
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
0
NHenry
Messages postés
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
Modifié par NHenry le 5/02/2014 à 13:06
Il te manque un ; à la fin de ta chaine et tu n'as pas échapper les " de l'ancre avec \
0
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

5 févr. 2014 à 13:17
s'il vous plait comment on échappe l'ancre
0
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
5 févr. 2014 à 14:22
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
5 févr. 2014 à 14:17
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 ??
0