Vous n'êtes pas identifié.

Annonce

#1 Css Dynamique Et Php du 24-06-2011 18:25:58

stephi
c00lnaute nouveau
Date d'inscription: 02-05-2011
Messages: 22

Css Dynamique Et Php

Bonjour à tous et à toi coolman

je vois parfois sur des sites qui ont un menu avec des rubriques, un style différent selon les rubriques.

par ex, sur la page de ton site, tu as <div class="cadrecentrale"> avec  style de couleur de fond pour toi background-color:#FFF;

Supposons qu on a 3 rubriques issues de la base mysq (voiture, vélo, moto). ce que j aimerai c est que la page de réception prenne par ex une couleur différente selon la rubrique avec par ex <div class="cadrecentralevoiture">; <div class="cadrecentralevélo">  qui aurait un backgroud color différent.

Bien sur tout ça suppose que je connaisse le nom de mes rubriques.

tu vois mon idée. j ai déja vu ça avec des sites avec des menus alimentés par php/mysql.

Voila une sorte de css dynamique.

si tu une piste la dessus.

merci

stephi


Hors ligne

 

24-06-2011 18:25:58

Mister $$$
Créer un site


#2 Re Css Dynamique Et Php du 24-06-2011 19:01:39

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Css Dynamique Et Php

Salut stephi,

Ce n'est pas très compliqué et tu donnes en partie la réponse à ta question :). En supposant que tu connaisses d'avance les noms des catégories, tu peux alors utiliser celles-ci comme nom de class css dans la boucle while() de ta requête sql.

En gros ça donnerai un truc du style :

Code:

$result = mysql_query("SELECT id,nom_categorie FROM CATEGORIE");
while($categorie = mysql_fetch_array($result))
{
 echo '<div class="'.$categorie['nom_categorie'].'">'.$categorie['nom_categorie'].'</div>';
}

Pour mieux comprendre le principe, voici un exemple qui fonctionne. La seule différence est que j'utilise un tableau au lieu d'une requête SQL :

Code:

<style type="text/css">
.voiture{
background:red;
width:100px;
height: 20px;
}
.meuble{
background:green;
width:100px;
height: 20px;
}
.velo{
background:yellow;
width:100px;
height: 20px;
}
</style>

<?php
//tableau qui remplace la requête sql
$categorie = array('Voiture', 'meuble','velo');
//Boucle foreach qui remplace la boucle while
foreach($categorie AS $valeur)
{
    echo '<div class="'.$valeur.'">'.$valeur.'</div><br />';
}
?>

Hors ligne

 

#3 Re Css Dynamique Et Php du 24-06-2011 19:32:09

stephi
c00lnaute nouveau
Date d'inscription: 02-05-2011
Messages: 22

Re: Css Dynamique Et Php

salut coolman

rapide comme toujours

donc si je reprend la requête sql

si j ai créé une classe

.voiture{........}

.moto{........}

j écrirai ça?

$result = mysql_query("SELECT id,nom_categorie FROM CATEGORIE");
while($categorie = mysql_fetch_array($result))
{
echo '<div class="'.$categorie['nom_categorie'].'">'.$categorie['nom_categorie'].'</div>';
}

mais comment, il peut savoir quelle catégorie prendre? savoir que c est .voiture ou .moto?

stephi


Hors ligne

 

#4 Re Css Dynamique Et Php du 24-06-2011 19:42:30

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Css Dynamique Et Php

La requête que je t'ai donné est juste un exemple, il faut que tu fasses ta propre requête en fonction des champs de ta BD.

Code:

$result = mysql_query("SELECT id,nom_categorie FROM CATEGORIE");
while($categorie = mysql_fetch_array($result))
{
echo '<div class="'.$categorie['nom_categorie'].'">'.$categorie['nom_categorie'].'</div>';
}

Dans cet exemple, on suppose que la table se nomme "CATEGORIE" et que le nom du champ qui indexe les catégories se nomme "nom_categorie"

Dans la boucle while(),  la variable "$categorie['nom_categorie']" correspond à la fois aux nom des catégorie et aux class CSS.
Donc si tu as par exemple la catégorie "Voiture" en bd et la class css ".Voiture" dans ton fichier CSS, la ligne :

Code:

<div class="'.$categorie['nom_categorie'].'">'.$categorie['nom_categorie'].'</div>

te sort la class "class="'.$categorie['nom_categorie'].'"" qui correspond forcément au titre de la catégorie "'.$categorie['nom_categorie'].'" ...tu me suis 014 ?

Hors ligne

 

#5 Re Css Dynamique Et Php du 25-06-2011 08:07:22

stephi
c00lnaute nouveau
Date d'inscription: 02-05-2011
Messages: 22

Re: Css Dynamique Et Php

Salut Coolman

je vois l'idée mais ce que je vois pas c est comment il va savoir qu'il doit aller chercher la class voiture car des classes, il y en a beaucoup.

en fait je me suis inspiré fortement de ton code pour ta page principal

<div id="page_principale3">
  <?php
//On récupère la variable transmit par l'url
$id_transmit=$_GET['reference'];
if (!isset($_GET["reference"]) OR !is_numeric($_GET['reference'])){
//Si la variable n'existe pas ou qu'elle n'est pas de type numérique, on redirige
    header('location:http://'.$_SERVER['HTTP_HOST'].'');
}
else{
    // on se connecte à la base de données
    include('Connections/baba.php');
    mysql_connect("$hostname_baba","$username_baba","$password_baba");
    mysql_select_db("$database_baba") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');

    $page = mysql_query("SELECT * FROM articles WHERE reference='".mysql_real_escape_string($id_transmit)."'");
   

    //on voie si il y a quelque chose
    if(mysql_num_rows($page) == 0)
    {
        //Si il n'y a rien, on redirige vers l'index
        header('location:http://'.$_SERVER['HTTP_HOST'].'');
    }
    else
    {
        while($affiche = mysql_fetch_array($page))
        {
            $titre=$affiche['titre'];
            $description=$affiche['auteur'];
            $contenu=$affiche['description'];
            $contenu = str_replace('href="/images/','rel="zoombox" href="/images/',$contenu);
      $id_categorie = $affiche['id_categorie'];

           



        }
    //On ferme else
    }
}
// Fermeture de la connexion à la base de données
;
?>
 
  <h1><?php echo $row_Recordset3['titre']; ?></h1>
  <br /><h2><?php echo $row_Recordset3['auteur']; ?></h2><br/>
  <?php echo $contenu;?>
 
</div>

je suppose que j ai une classe .voiture; . moto que je veux qui s'applique quand l'article est voiture et moto.

Comment retrouve t il . voiture et .moto?

c est ça mon problême.

en tout cas, top comme tooujours.

stephi


Hors ligne

 

#6 Re Css Dynamique Et Php du 25-06-2011 10:36:45

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Css Dynamique Et Php

Salut stephi,

je suppose que j ai une classe .voiture; . moto que je veux qui s'applique quand l'article est voiture et moto.

Cette phrase subodore que tu fais référence à la catégorie dont dépend l'article .. c'est bien ça ?
Si c'est bien ça, en l'état ton code ne peut pas le faire car tu ne dispose pas du nom de la catégorie... tu n'as pas été assez loin dans les tutoriels mis en ligne 014 . Réfère toi à cette page : "Comment créer un fil d'ariane pour notre site dynamique?".
D'un autre côté, tu vas avoir un autre soucis car tu ne peux pas mettre de class CSS qui contiennent uniquement des chiffres ou des accents ou des espaces ... tu ne peux donc pas utiliser l'identifiant des catégories ni le nom des catégories tel quelle pour créer tes class CSS.

J'ai bien une idée sur le "comment faire" mais ça nécessite d'ajouter un champ en plus en bdd pour les catégories ainsi qu'une fonction. Tu devras également modifier l'ensemble de tes fichiers qui permet d'ajouter/modifier/ supprimer les catégories...

Est tu prêt(e)s et capable de faire ses modifications par toi même..?

ps : je dois utiliser le féminin ou le masculin quand je te répond (ton pseudo porte à confusion)??

Hors ligne

 

#7 Re Css Dynamique Et Php du 25-06-2011 13:53:31

stephi
c00lnaute nouveau
Date d'inscription: 02-05-2011
Messages: 22

Re: Css Dynamique Et Php

tu peux utiliser le masculin.

j ai fait la plus grande partie du site, une partie de ce site est inspiré de ton tuto et tout l'aspect zoombox et ckfinder et le menu accordéon d'un autre tuto.

http://www.gandon-decoration.com

c est en fait pour les articles de la rubriques ARTISTIQUE que je veux un fond différent.

je te mets le code qui gere le menu et le suivant pour l affichage que je t'ai mis tout à l heure .

et ok pour ajouter quelquechose

<div class="col">
<h1>MENU</h1>

<ul class="navigation">
<li><a href="index.php"  title="page1">ACCUEIL</a></li><br/>
<li><a href="GANDON-PEINTURE-DECORATION-CONTACT.php"  title="page1">CONTACT</a></li><br/>

<?php
//---- menu principal
$selreg = mysql_query("SELECT * FROM rubriques");
while($reg=mysql_fetch_array($selreg)) {
        $toggleSubMenu = "<li class='toggleSubMenu";
        if(isset($_GET['cat']))
        {
            if($_GET['cat'] == $reg['ID'])
            {
                $toggleSubMenu .= " open";
            }
        }
                   
        $toggleSubMenu .= "'><span>".toutmajuscule($reg['theme'])."</span>";           
        echo $toggleSubMenu;
             
               
        echo '<ul class="subMenu">';
               
            $seldep= mysql_query("SELECT * FROM articles WHERE rubriqueID ='".$reg['ID']."'");
            while($dep = mysql_fetch_array($seldep))
            {
                $article = "<li><a href='GANDON-DECO-GALERIE.php?reference=$dep[reference]&cat=".$reg['ID']."&article=".$dep['reference']."'";
                if(isset($_GET['article']))
                {
                    if(intval($dep['reference']) == intval($_GET['article']))
                    {
                       
                        $article .= " class = 'opened'";
                    }
                }
                $article .= ">".$dep['titre']."</a></li>";
               
                echo $article;

            }
            echo '</ul>';
         echo '</li>';
         }
         ?>
    </ul>
         <h1>Partenaires</h1></div></div>
    <p><br />
    </p>
  </div>
<div id="page_principale3">
  <?php
//On récupère la variable transmit par l'url
$id_transmit=$_GET['reference'];
if (!isset($_GET["reference"]) OR !is_numeric($_GET['reference'])){
//Si la variable n'existe pas ou qu'elle n'est pas de type numérique, on redirige
    header('location:http://'.$_SERVER['HTTP_HOST'].'');
}
else{
    // on se connecte à la base de données
    include('Connections/baba.php');
    mysql_connect("$hostname_baba","$username_baba","$password_baba");
    mysql_select_db("$database_baba") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');

    $page = mysql_query("SELECT * FROM articles WHERE reference='".mysql_real_escape_string($id_transmit)."'");
   

    //on voie si il y a quelque chose
    if(mysql_num_rows($page) == 0)
    {
        //Si il n'y a rien, on redirige vers l'index
        header('location:http://'.$_SERVER['HTTP_HOST'].'');
    }
    else
    {
        while($affiche = mysql_fetch_array($page))
        {
            $titre=$affiche['titre'];
            $description=$affiche['commentaire'];
            $contenu=$affiche['description'];
            $contenu = str_replace('href="/images/','rel="zoombox" href="/images/',$contenu);
      $id_categorie = $affiche['id_categorie'];

           



        }
    //On ferme else
    }
}
// Fermeture de la connexion à la base de données
;
?>
 
  <h1><?php echo $titre; ?></h1>
  <br /><h2><?php echo $description; ?></h2><br/>
  <?php echo $contenu;?>
 
</div>

voila, ça va peut etre t'aider

stephi

Dernière modification par stephi (25-06-2011 16:38:39)


Hors ligne

 

#8 Re Css Dynamique Et Php du 25-06-2011 21:47:08

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Css Dynamique Et Php

Si c'est juste pour une seule catégorie, j'ai plus simple big_smile.
Visiblement ta catégorie "Artistique" porte l'identifiant 4.
Tu déplaces le div <div id="page_principale3"> qui semble être le conteneur de tes articles pour la placer juste au dessus de <h1><?php echo $titre; ?></h1>
Tu modifies ensuite la div de cette façon :

Code:

<?php
//si la catégorie est le numéro 4
if($id_categorie == 4)
{
//on change le nom de la class
echo '<div id="artistique">';
}
else
{
//Sinon on ne change rien
echo '<div id="page_principale3">';
}
?>

Puis tu ajoutes une class css "artistique" qui correspond à la class "page_principale3" mais avec une couleur de fond différent.

Code:

<?php
//si la catégorie est le numéro 4
if($id_categorie == 4)
{
//on change le nom de la class
echo '<div id="artistique">';
}
else
{
//Sinon on ne change rien
echo '<div id="page_principale3">';
}
?>
  <h1><?php echo $titre; ?></h1>
  <br /><h2><?php echo $description; ?></h2><br/>
  <?php echo $contenu;?>
</div>

ps : si je n'ai pas pris le bon "div", tu adaptes ^^.

Hors ligne

 

#9 Re Css Dynamique Et Php du 26-06-2011 08:14:40

stephi
c00lnaute nouveau
Date d'inscription: 02-05-2011
Messages: 22

Re: Css Dynamique Et Php

salut coolman.

oui dans ce cas c est juste pour une catégorie.

oui <div principal...> est le conteneur principal.

je teste ça tout à l heure et je te dis ça.

merci

stephi


Hors ligne

 

#10 Re Css Dynamique Et Php du 26-06-2011 11:09:09

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Css Dynamique Et Php

Bon alors .. je veux savoir icon_mrgreen .

Hors ligne

 

#11 Re Css Dynamique Et Php du 26-06-2011 17:31:31

stephi
c00lnaute nouveau
Date d'inscription: 02-05-2011
Messages: 22

Re: Css Dynamique Et Php

impec comme toujours,

ja i donc un fond différent pour artistique.

encore merci à toi

ça searit intéressant de voir comment on pourrait faire avec ton astuce de rajouter un champs dans la table pour toutes les catégories comme tu disais plus haut mais un autre jour, je te laisse te reposer. c  est dimanche QUAND MËME

à bientôt

stephi


Hors ligne

 

#12 Re Css Dynamique Et Php du 26-06-2011 18:37:45

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Css Dynamique Et Php

Tant mieux si ça fonctionne, je dormirais mieux ce soir ^^. Pour mon "astuce", on verra si besoin.
En passant, il faudra revoir le côté "optimisation" de ton site pour le référencement ...ça sera pour plus tard 014

Hors ligne

 

Propulsé par PunBB
© Copyright 2007
Forum créer un site

Partenaires de « créer un site internet »