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
    Inscrit 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
    Points : 179
    Points
    179
    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 émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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
    Points : 2 557
    Points
    2 557
    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
    Inscrit 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
    Points : 179
    Points
    179
    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 averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    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
    Inscrit 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
    Points : 179
    Points
    179
    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 émérite 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
    Points : 2 953
    Points
    2 953
    Par défaut
    Et pourquoi définir ce style dynamique dans la feuille de style et pas directement dans la page.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  7. #7
    Membre averti

    Inscrit en
    Octobre 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 363
    Points : 417
    Points
    417
    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 émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    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
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  9. #9
    Inscrit 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
    Points : 179
    Points
    179
    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 émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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
    Points : 2 557
    Points
    2 557
    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 régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 137
    Points : 87
    Points
    87
    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 habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 130
    Points : 127
    Points
    127
    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