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 :

php et css dynamique


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 25
    Par défaut php et css dynamique
    Je voudrais à partir d'un programme php
    modifier le contenu d'un fichier css

    J'ai posé cette question également dans la rubrique css.

    Ce petit script trés simple envoi deux variables par la méthode get à mon script css.php. Celui ci est chargé de modifier à la volée des css grâce aux variables envoyées par un formulaire. Pour l'instant mon soucis et que je n'arrive par à envoyer correctement des variables définis par php dans le lien qui est chargé de créer la css. Çà ne fonction qu'en dur et uniquement si je transmets des variables red, blue , yellow et pas le code hexadécimal correspondant à une vraie couleur ( de la forme #FFAABB par exemple)

    Je vous joins les deux scripts . Il suffit de les installer sur un petit serveur web , type wamp. Si vous changez le paramètre en dur dans cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="test_css.php?couleur=blue&&couleur1=red"
    ça marche

    par contre si vous écrivez un truc de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mavariable="#AABBCC";
     href="test_css.php?couleur=<?php echo $mavariable?>
    Ca ne marche pas

    Cette astuce permettait de généraliser ce script pour faire un générateur de css universel ou tous les paramètres pour raient être modifiés à volée. très utile dans le cadre d'une customisation d'un site par une base de donnée tierce

    le script fonction en partie
    test.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
    21
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>CSS dynamique</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" 
            type="text/css" 
            title="Exemple"
            href="test_css.php?couleur=blue&&couleur1=red" /> 
    </head>
    <body>
    <p>texte</p>
    <form action="pagecss.php" method="post">
    <div>
    <input name="couleurfond" value="150" type="radio" />rouge
    <input name="couleurfond" value="300" type="radio" />jaune
    <br /><input class="submit" value="Sélectionner" type="submit" />
    </div>
    <div class="taille">toto</div>
    </body>
    </html>
    test_css.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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
     
    header("Content-type: text/css");
     
    if (isset($_GET['couleur']))
    {
    $couleur = $_GET['couleur'];
    $couleur1 =$_GET['couleur1'];	
    if($couleur==1)
       {
         $couleur='#Aeeee';
       }
       else
       {
          $couleur='#DDBBCC'; 
       }	   
    }
    else
    {
    $couleur= 'papa';
     
    }
    ?>
     
    body {
         echo $couleur;
    	background-color:<?php echo $couleur ?>;
     
    }
     
    .taille { 
    		 background:<?php echo $couleur1 ?> ;
    		 font-size:<?php echo $taille ?>
          }
    ce script marche si je code les couleurs en dur et avec le nom de la couleur
    je peux dire que couleur= bleu, rouge , pink le paramètre passé marchera parfaitement dans le fichier css.php
    qui génère la feuille de style et que je décrits ci après

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    header("Content-type: text/css");
    if (isset($_GET['couleur']))
    {
    $couleur = $_GET['couleur'];
    $couleur1 =$_GET['couleur1'];	
    if($couleur==1)
       {
         $couleur='#AABBCC';
       }
       else
       {
          $couleur='#DDBBCC'; 
       }	   
    }
    else
    {
    $couleur= 'papa';
     
    }
    ?>
     
    body {
     
    	background-color:<?php echo $couleur ?>;
     
    }
     
    .taille { 
    		 background:<?php echo $couleur1 ?> ;
    		 font-size:<?php echo $taille ?>
          }
    comment arriver à modifier les variables du fond qui peuvent prendre plusieurs milliers de couleurs

    L'intérêt est de pouvoir paramétrer une css sans toucher au code

    avez vous une piste pour gérer ce probléme

    Merci beaucoup

  2. #2
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    C'est le caractère "#" qui pause problème.
    Une solution serait de déclarer la variable sans ce caractère comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $mavariable="AABBCC"; ?>
    et ensuite de faire comme ceci dans ton fichier test_css.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    body { background-color: #<?php echo $couleur ; ?> ; }

Discussions similaires

  1. PHP et CSS Dynamique
    Par Flamenco dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 17/05/2010, 11h26
  2. [Article] Des feuilles de style CSS dynamiques avec PHP
    Par Bisûnûrs dans le forum Publications (X)HTML et CSS
    Réponses: 3
    Dernier message: 05/01/2009, 20h48
  3. [MySQL] Menu dynamique PHP / MySQL CSS
    Par mouchagheb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/06/2008, 11h33
  4. [PostgreSQL] [PostGreSQL] menu dynamique php-postgre-css
    Par tyrann dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/11/2005, 17h23

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