IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable PHP vers CSS


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Tu pourra faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    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
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  4. #4
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Plutôt un truc de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Probleme variable php vers flash
    Par jbidou88 dans le forum Flash
    Réponses: 2
    Dernier message: 29/03/2007, 09h13
  2. [FLASH 8] Probleme variable php vers flash : accent
    Par jbidou88 dans le forum Flash
    Réponses: 2
    Dernier message: 22/03/2007, 14h52
  3. [PHP-JS] Variables PHP vers Javascript
    Par jojo33bx dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/11/2006, 16h05
  4. [FLASH MX2004] Variable php vers flash
    Par Rhadamanthe59 dans le forum Flash
    Réponses: 8
    Dernier message: 01/03/2006, 22h14
  5. [FLASH 8] Variable PHP vers clip flash
    Par howie42 dans le forum Flash
    Réponses: 2
    Dernier message: 27/02/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo