Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/01/2012, 15h49   #1
Membre éclairé
 
Inscription : mai 2006
Messages : 335
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 335
Points : 326
Points : 326
Par défaut Variable PHP vers CSS

Bonjour à tous

Depuis un certain temps, j'essaie de récupérer une variable PHP dans le fichier CSS, et malgré mes tests et recherches, je n'y arrive pas. Le but de cette manipulation est de modifier l'image de ma banière suivant suivant mon choix, ici "le continent"

J'ai, suivant ce que j'ai trouvé sur internet, testé ceci :

- directement dans le fichier php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        <div id="baniere">
 
			<?php
				if ($le_continent == 2){$image="../images/amerique_sud/header_amer_sud.jpg";}
				if ($le_continent == 4){$image="../images/amerique_centrale/mexique/header_riziere_02.jpg";}
			?> 
 
			<style>
				header("Content-type: text/css");
				body
				#baniere
				{ 
					background-image: url(<?php echo $image; ?>); 
				}
			</style>
 
 
		</div>
puis cette autre solution :
- créer un fichier essai.php, servant de fichier css, comme ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
header("Content-type: text/css");
	if ($le_continent == 2){$image="../images/amerique_sud/header_amer_sud.jpg";}
	if ($le_continent == 4){$image="../images/amerique_centrale/mexique/header_riziere_02.jpg";}
?> 
 
body 
 
#baniere
{
	background-image:url(<?php echo $image; ?>);
}
et dans mon fichier php, écrit :

Code :
<link rel="stylesheet" title="feuille de style" type="text/css" href="./css/essai.php" media="screen">
aucune de ces 2 solutions ne fonctionnent, je n'ai aucune image.

Merci d'avance pour votre aide.
Eric
edelweisseric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 16h00   #2
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 466
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 466
Points : 655
Points : 655
Tu pourra faire ca
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
			<?php
				if ($le_continent == 2){$image="../images/amerique_sud/header_amer_sud.jpg";}
				if ($le_continent == 4){$image="../images/amerique_centrale/mexique/header_riziere_02.jpg";}
			?> 
 
			<style>
				#baniere
				{ 
					background-image: url(<?php echo $image; ?>); 
				}
			</style>
<div id="baniere"> 
 
		</div>
ou
Code :
1
2
3
4
5
6
7
8
 
<?php
     if ($le_continent == 2){$image="../images/amerique_sud/header_amer_sud.jpg";}
     if ($le_continent == 4){$image="../images/amerique_centrale/mexique/header_riziere_02.jpg";}
?> 
<div id="baniere" style="background-image: url(<?php echo $image; ?>); "> 
 
</div>
verifier seulement le chemein de tes images et la condition IF
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 16h06   #3
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Bonjour,

Dans le premier exemple, supprime header("Content-type: text/css");. C'est du php qui n'a pas lieu d'être là.
Ensuite rajoute le type de donnée à la balise style : <style type="text/css"></style>
Et enfin, remonte ton CSS au dessus de ta balise <div id="banniere"></div> <!-- bannière qui prend deux 'n' au passage -->.

Dans le deuxième, rajoute les accolades à la propriété body. Mais cela n'y changera pas grand chose.

Sinon vérifie ta condition et le cas échéant si il n'y a pas un souci de chemin d'accès aux images.

Edit: grilled
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/01/2012, 16h44   #4
Membre éclairé
 
Inscription : mai 2006
Messages : 335
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 335
Points : 326
Points : 326
Re

Merci à vous 2 pour vos réponses si rapides.

La solution de m4riachi ne fonctionne pas chez moi ! J'ai copié/collé la 2ème mais rien à faire, toujours pas de photo.

La solution de Torgar, si j'ai bien compris :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php echo $le_continent; ?>  <!-- pour test, donne bien 2 ou 4 -->
		<?php
			 if ($le_continent == 2){$image="../images/amerique_sud/header_amer_sud.jpg";}
			 if ($le_continent == 4){$image="../images/amerique_centrale/mexique/header_riziere_02.jpg";}
		?> 
		<div id="banniere">
			<style type="text/css">
				#banniere
				{ 
					background-image: url(<?php echo $image; ?>); 
				}
			</style>
		</div>
rien à faire également.

J'ai testé le If et le chemin des photos, c'est bon.

Eric

PS : merci pour le "bannière", j'ai honte
edelweisseric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 16h49   #5
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Plutôt un truc de ce style :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$le_continent = 2;
 
echo $le_continent; //pour test, donne bien 2 ou 4
 
if ($le_continent == 2){$image="../images/amerique_sud/header_amer_sud.jpg";}
if ($le_continent == 4){$image="../images/amerique_centrale/mexique/header_riziere_02.jpg";}
 
?>
<style type="text/css">
    #banniere {
        background-image: url('<?php echo $image; ?>'); 
    }
</style>
 
<div id="banniere"></div>
Ca me donne le bon résultat avec ça.
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 16h56   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Mettre une balise <style> dans une <div>, c'est

Enfin bref...
Il semble que ta <div id="banniere"> soit vide, dans ce cas, elle n'a pas de dimensions et ton image de fond ne peut pas être visible...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/01/2012, 17h01   #7
Membre éclairé
 
Inscription : mai 2006
Messages : 335
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 335
Points : 326
Points : 326
Re

Le $le_continent vient d'une requête, donc je ne peux pas le mettre en dur dans cette partie de code.
Voilà ce que j'ai fait :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
		<?php
			 if ($le_continent == 2){$image="./images/amerique_sud/header_amer_sud.jpg";}
			 if ($le_continent == 4){$image="./images/oceanie/header_lagon_02.jpg";}
			 echo $le_continent; //pour test, donne bien 2 ou 4
		?> 
 
			<style type="text/css">
				#banniere
				{ 
					background-image: url(<?php echo $image; ?>); 
				}
			</style>
		<div id="banniere">
		</div>
et cela fonctionne
J'ai juste supprimé un "." avant " ./images/amerique_sud/header_amer_sud.jpg";}

Merci beaucoup.
Eric

PS : pour Bovino : on apprend tous les jours et je m'en souviendrai (je suis débutant)
edelweisseric est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h15.


 
 
 
 
Partenaires

Hébergement Web