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

Mise en page CSS Discussion :

[CSS][PHP] passer les variables


Sujet :

CSS

  1. #1
    Membre confirmé Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Par défaut [CSS][PHP] passer les variables
    Bonjour à tous,

    Voilà je me suis rendu compte d'un petit soucis pour donner une variable dans le css.

    Pour le moment je n'ai trouvé que deux solutions :

    1- au lieu d'un fichier .css appelé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link title="test" type="text/css" rel="stylesheet" href="style.css">
    je fais une include(fichier.php) qui contient tout mon css. Le soucis : ben le code css est libre d'accès...

    2- Je fais une fonction random (aléatoire) sur le choix du fond d'écran de mon site.

    Ensuite dans mon css j'ai un body fond1{} et un body fond2{} qui auront un background différent... je trouve le traitement un peu lourd... Donc ma question :

    Peut-on faire passer une variable dans la feuille de style appelée dans mon choix 1 ? Car pour le moment je vois vraiment pas comment...

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut Re: [CSS][PHP] passer les variables
    j'ai pas bien compris ce que tu voulais.

    et ca je l'ai encore moins compris.
    Citation Envoyé par sanosuke85
    Le soucis : ben le code css est libre d'accès...

  3. #3
    Membre confirmé Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Par défaut
    D'accord je vais essayer d'être un peu plus clair pardon (ps : salut maxoo merci de ta première réponse c'est pas la première fois que tu viens m'aider ^^ sympa de ta part )

    Donc :

    Lorsque l'on fait l'insertion d'une feuille de style dans mon exemple 2 la feuille de style n'est pas accessible dans le code source de la page html (j'avais oublié de précier que je parlais du code source pardon). Alors que si je définis tout mon css dans un fichier inséré avec include() il sera accessible dans le code source.

    Mais.... Si je fais donc mon css dans une feuille de style de l'exemple 2 je n'arrive pas à lui passer des variables.

    Dans mon exemple en gros je veux définir une image de fond aléatoire. J'ai donc une fonction php qui me permet de sortir un chiffre au hasard. Imaginons que j'ai cinq fonds d'écrans différents. Au lieu de définir une classe pour chaque fond d'écran :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    body1
    {
    background-image:url("fond1.jpg");
    }
     
    body2
    {
    background-image:url("fond2.jpg");
    }
    ......
    Je souhaiterais plutôt avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    body
    {
    background-image:url("fond" . $fonctionrand . ".jpg");
    }
    La fonction $fonctionrand serait bien sur faite avant l'insertion de la feuille de style... Cependant dans un fichier .css je n'arrive pas à insérer du php pour le moment... Donc je suis obligé de définir 5 classes de body et de faire appel dans mon html à un body par la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $fonctionrand = rand(1,5);
    echo "<body class='body" . $fonctionrand . "'>";
    Voilà ^^ j'espère que c'est une peu plus compréhensible...

  4. #4
    Membre chevronné

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Par défaut
    pkoi ne pas passer directement par la fonction random javascript ?

    Ce serait indépendant du css, il te suffit juste de mettre un pti code en fin de page pour changer le background aletoirement.

  5. #5
    Membre confirmé Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Par défaut
    Merci pour ta réponse

    Euh.. Hum ... Au risque de parraître pénible ^^ Je préfère ne pas insérer de javascript pour le moment

    Par contre : ton code est-il compatible avec les différents navigateur? Car mon site a pour but cela... Et j'ai l'impression que le javascript pose soucis parfois... Ce n'est qu'hypothèse je n'ai pas encore approfondi la question.

  6. #6
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Et pourquoi définir ce style dynamique dans la feuille de style et pas directement dans la page.

  7. #7
    Membre chevronné

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Par défaut
    Citation Envoyé par franculo_caoulene
    Et pourquoi définir ce style dynamique dans la feuille de style et pas directement dans la page.
    +1 quitte à utiliser du php autant le mettre directement dans la page plutot que dans le css.

  8. #8
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, sinon, tu peux définir ta feuille de style au format php. Ca donne
    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <head>
        <link rel="stylesheet" type="text/css" href="./style.php" />
    </head>
    <body>
        texte
    </body>
    </html>
    style.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
    19
    20
    body {
        background-color:
        <?php
        $r = rand(0, 2);
        $couleur = '#f00';
        switch($r) {
            case 0:
                $couleur = '#f00';
                break;
            case 1:
                $couleur = '#0f0';
                break;
            case 2:
                $couleur = '#00f';
                break;
        }
        echo $couleur;
        ?>
        ;
    }
    A toi de voir

  9. #9
    Membre confirmé Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Par défaut
    Pour définir le style dans la page php directement :

    Je suis en train de bosser sur le css et comme on me le conseille je tente de séparer tout le style de la page du contenu html... Donc tout style doit être dans mon fichier style.css

    Pour Nesmontou :

    je ne savais pas qu'on pouvait appeler un fichier .php grâce au link... Je vais tester ça -> si ça marche ben tu as résolu mon soucis et je t'en remercie grandement

    Je vous tiens au courant ! En tout cas merci à tous pour votre aide déjà

  10. #10
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Citation Envoyé par sanosuke85
    Je suis en train de bosser sur le css et comme on me le conseille je tente de séparer tout le style de la page du contenu html
    et c'est tout à ton honneur !!!

    Citation Envoyé par sanosuke85
    je ne savais pas qu'on pouvait appeler un fichier .php grâce au link... Je vais tester ça
    hmm interessant, je ne savais pas non plus ...

    sanosuke85 quand tu auras trouvé un truc qui marche bien tu pourrais poster ta solution qu'on voit à quoi ca ressemble ?? merci bien, et tu sais ca fait plaisir d'aider les autres quand ca nous apporte aussi d'autres connaissances ... nous ne sommes pas des vieux sages qui ont accès à la connaissance ultime. on apprend en partageant.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Par défaut
    Salut, en effet c'est bien intéressant et ça résous également mon problème : appeler une feuille de style en css !

    Mais je me demande pourquoi ce n'est pas prévu dans une feuille de style de pouvoir appeler une image avec le chemin absolu : /img/maphoto.jpeg ???
    (où le / représente la racine du site)

    ou alors cela est-il possible ?

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 130
    Par défaut
    Salut, pour que ton script php soit interprété par le navigateur comme du css, tu peux aussi ajouter ça en début de fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-type: text/css");
    Je me sers de ça pour faire varier des couleurs suivant des infos prises dans une base de données, ça marche très bien.

    Ca donne quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" type="text/css" href="style.php?var=<?php echo $var; ?>" />
    pour la balise <link>

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
    header("Content-type: text/css");
     
    //-- traitements avec appel à Mysql etc ...
    ?>
     
    //-- Ici le code CSS, par exemple
    #Titre     {color: #000000;font-size: 16px;font-weight: bold;font-family: <?php echo $defaultPolice; ?>;}
    //--- etc ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/01/2012, 15h35
  2. passer les variables string php à javascript
    Par flasheur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/11/2010, 14h17
  3. Réponses: 1
    Dernier message: 22/06/2007, 15h40
  4. [Système] INCLUDE sans passer les variables dans l'URL
    Par bonjour69 dans le forum Langage
    Réponses: 9
    Dernier message: 07/10/2006, 01h20
  5. Passer les variables de fichier.php en fichier.php
    Par Furius dans le forum Langage
    Réponses: 4
    Dernier message: 20/11/2005, 22h05

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