Changer de classe css en fonction de l'url dynamique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Changer de classe css en fonction de l'url dynamique

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 16 déc. 2014, 17:47

hello,

je suis vraiment bloquée sur ce point, voici la page entière, visible sur http://beesub.org/blog/Fanny/tagstest.php :

merci pour votre aide

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
include ('./admin/connect.php');


echo"Test pour voir si la variable arrive : ".$_GET["tag"]."<br>";
if($_GET["tag"]=="all"){$class = "menusurb";} else {$class = "menunorm";}
if($_GET["tag"]== "1"){$class2 = "menusurb";} else {$class2 = "menunorm";}
if($_GET["tag"]== "2"){$class2 = "menusurb";} else {$class2 = "menunorm";}


?>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Travaux par tags - Beesub</title>
<script src="https://ajax.googleapis.com/ajax/libs/j ... ery.min.js" type="text/javascript"></script>
<script src="js/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="css/prettyPhoto.css" type="text/css" media="screen" title="prettyPhoto main stylesheet" charset="utf-8" />
<link rel="stylesheet" href="css/mainew.css" type="text/css" media="screen" />
</head>

<body>
<div id="conteneur">
<div id="fond-menu">
</div>
<div id="nav-tags">
<h3>Tags_____</h3>
<ul>
<li class="<? echo $class ?>"><a href="tagstest.php?tag=all" id="all">&nbsp;ALL&nbsp;</a></li>
<?php
//récupération dynamique des tags
$sqltag="select * from t_tags;";
$rstag=mysql_query($sqltag);
while($enr=mysql_fetch_object($rstag)){
print("<li class='".$class2."'><a href='tagstest.php?tag=".$enr->tags_id."'>&nbsp;".$enr->tags_label."&nbsp;</a></li>");
}
?>
</ul>
</div>

<div id="bloc-fixe-gauche">
<h1><span class="trait">_____</span><a href="index.php">Blog / beesub.org</a></h1>
<h2>Graphic Design & Art Direction</h2>
<span class="surlign">ABOUT</span>
<br />
<p class="about">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc volutpat posuere commodo. Curabitur sit amet euismod purus. Etiam facilisis, odio sed suscipit commodo, magna dolor cursus orci, eget malesuada libero nulla euismod ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius luctus dapibus. Proin sapien neque, sodales a dui eleifend, porttitor sollicitudin nisi. Praesent facilisis mauris vel dolor ullamcorper, eu malesuada mi malesuada. Nullam interdum enim ac magna mollis, et varius lectus tempor. Nam tempor dapibus est vitae interdum. Aenean convallis elit mi, sit amet placerat tellus suscipit non. Praesent a rutrum velit, eget tempus ipsum. Proin mattis tristique ornare.</p>
<p id="copyright">
<span class="credit">@ </span>BEESUB.ORG.
<br />
All rights reserved. Unless otherwise indicated, all material on this site is copyrighted.
</p>
</div>

<!--div id="imgtext"></div-->

<div id="contenu">
<div id="thumbnails-works">

<?php


//récupération des posts en rapport avec le tag sélectionné

//Vérification d'une sélection sur le tag ou le post
if(isset($_GET['post_id'])){
$sqlpost="select * from t_post where post_affichage=1 and post_id =".$_GET['post_id']." order by post_id desc;";
}else if(!isset($_GET['tag']) or $_GET['tag']=="all"){
$sqlpost="select * from t_post where post_affichage=1 order by post_id desc;";
}else{
$sqlpost="select * from t_post where post_affichage=1 and post_id in (select post_id from t_tagliens where tags_id =".$_GET['tag'].") order by post_id desc;";
}
$rspost=mysql_query($sqlpost);
$cptpost=mysql_num_rows($rspost);
if($cptpost != 0 )
{
while ($enrpost=mysql_fetch_object($rspost)){
$post_id = $enrpost->post_id;
?>
<div class="thumbnails-img">
<a href="index.php?post_id=<?php echo $post_id;?>"><img src="<?php echo $enrpost->post_image;?>" width ='203px' height='114px'><br />

<span class="titre1"><?php echo $enrpost->post_titre;?></span><br>

<span class="titre2"><?php echo $enrpost->post_soustitre;?></span>
</a>
</div>

<?php
}
}
?>
</div>
</div>

<script type="text/javascript">
$(function() {
$('#thumbnails-works img').css({
'opacity': 1
});
$('#thumbnails-works img').hover(function() {
$(this).animate({
'opacity': .5
});
},
function() {
$(this).animate({
'opacity': 1
});
});
});

$(document).ready(function(){
$("area[rel^='prettyPhoto']").prettyPhoto();

$(".gallery:first a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'normal',theme:'light_square',slideshow:5000, autoplay_slideshow: false,overlay_gallery: false /* If set to true, a gallery will overlay the fullscreen image on mouse over */});
$(".gallery2:first a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'normal',theme:'light_square',slideshow:5000, autoplay_slideshow: false,overlay_gallery: false /* If set to true, a gallery will overlay the fullscreen image on mouse over */});

});
</script>
</body>
</html>

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 09 déc. 2014, 11:43

Hello Mega,

Tu as pu regardé la page?

merci

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 05 déc. 2014, 11:41

Hello,

Oui les variables sont bien renvoyées tu peux regarder ce que cela fait sur :
http://beesub.org/blog/Fanny/tagstest.php

le message de test en haut à gauche indique bien la variable renvoyée, cela fonctionne donc bien pour all et 1 mais pas la suite.

Merci pour ton aide :)

Re: Changer de classe css en fonction de l'url dynamique

par Megadeth » 05 déc. 2014, 09:40

Re,

Bah la seule explication que je vois (si les autres ont été testées) c'est que ton tags_id ne renvoie pas 2, 3...

As-tu essayé de passer ta variable en dur dans l'url ?

Tu es sûre que <li><a class='".$class2."' href='tagstest.php?tag=".$enr->tags_id."'>&nbsp;".$enr->tags_label."&nbsp;</a></li>

renvoie bien tagstest.php?tag=2

Au pire poste le lien du site ou ta page entièrement ;)

Mega
;)

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 04 déc. 2014, 18:30

hello

Oui il me renvoit bien le contenu de la classe mais cela ne fonctionne que pour le tag=1 par exemple, et tous les autres tags (2,3,4...) prennent la même classe que le 1

Le css fonctionne bien pour le all et pour le 1, c'est pour les autres labels de tags que cela pose pb

Re: Changer de classe css en fonction de l'url dynamique

par Megadeth » 04 déc. 2014, 01:29

Slt,

Ce code :
while($enr=mysql_fetch_object($rstag)){
print("<li><a class='".$class2."' href='tagstest.php?tag=".$enr->tags_id."'>&nbsp;".$enr->tags_label."&nbsp;</a></li>");
}

te renvoie bien par exemple
<li><a class="menusurb" href="tagstest.php?tag=1"> ton label </a></li>

Autre supposition, tu n'aurais pas un style au dessus qui prend la main sur tous les autres styles ?

Ton fichier css est bien appelé dans tous les cas de figure ?

Mega
;)

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 03 déc. 2014, 20:43

merci

La valeur du tag est bien renvoyée, mais la suppression des guillemets ne change rien.

je vais essayer de mettre en place ta seconde solution

Re: Changer de classe css en fonction de l'url dynamique

par Megadeth » 03 déc. 2014, 17:23

Slt,

Fais un echo de ton $_GET["tag"] du style

<?php echo "---->".$_GET["tag"]; ?> pour savoir ce qu'il te renvoie.

Normalement ça doit fonctionner mais essaie d'enlever les guillemets autour de 1, 2 et 3
if($_GET["tag"]==1){$class2 = "menusurb";} else {$class2 = "menunorm";}

Sinon l'autre option consiste à faire ta condition de class dans ton while.

Tu déclares un class1, class2 au dessus et tu testes la valeur de l'id.

Mega
;)

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 03 déc. 2014, 16:40

POur ce qui est de tag == all, cela fonctionne.

Mais si je décline avec mes autres ids de tags :
<?
echo"Test pour voir si la variable arrive : ".$_GET["tag"]."<br>";
if($_GET["tag"]=="all"){$class = "menusurb";} else {$class = "menunorm";}
if($_GET["tag"]=="1"){$class2 = "menusurb";} else {$class2 = "menunorm";}
if($_GET["tag"]=="2"){$class2 = "menusurb";} else {$class2 = "menunorm";}
if($_GET["tag"]=="3"){$class2 = "menusurb";} else {$class2 = "menunorm";}
?>

avec l'html comme suit :

<div id="nav-tags">
<h3>Tags_____</h3>
<ul>
<li><a class="'.$class.'" href="tagstest.php?tag=all" id="all">&nbsp;ALL&nbsp;</a></li>
<?php
//récupération dynamique des tags
$sqltag="select * from t_tags;";
$rstag=mysql_query($sqltag);
while($enr=mysql_fetch_object($rstag)){
print("<li><a class='".$class2."' href='tagstest.php?tag=".$enr->tags_id."'>&nbsp;".$enr->tags_label."&nbsp;</a></li>");
}
?>
</ul>
</div>

Cela ne fonctionne pas sur le autres que "all".

est-ce que je dois modifier le ".$class2." dans le print ?

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 02 déc. 2014, 17:41

merci, oui la variable arrive et la classe passe bien dans le html.
mais elle ne s'applique pas je vais creuser, j'ai peut-être aussi un pb css

en tous cas merci pour votre aide :)

je reviendrai marquer en résolu dès que tout fonctionnera :)

Re: Changer de classe css en fonction de l'url dynamique

par ecumastor » 02 déc. 2014, 17:32

Pour récupérer une variable dans l'url : tagstest.php?tag=all, il faut utiliser cette syntaxe :

Code : Tout sélectionner

<? echo"Test pour voir si la variable arrive : ".$_GET["tag"]."<br>"; if($_GET["tag"]=="all"){$class = "menusurb";} else {$class = "menunorm";} if($_GET["tag"]=="1"){$class2 = "menusurb";} else {$class2 = "menunorm";} ?>

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 02 déc. 2014, 17:20

merci en effet je retrouve bien une classe css dans le html du site, mais le problème c'est que ce n'est pas la classe attendue à savoir "menusurb".
J'ai la classe "menunorm".

Comme si l'url n'était pas bien détectée.

Est-ce que mon chemin d'url est correct?

Re: Changer de classe css en fonction de l'url dynamique

par ecumastor » 02 déc. 2014, 17:10

Re-salut,
Dans le HTML, encadre la variable "$class" pour le php:

Code : Tout sélectionner

<li><a class="'.$class.'" href="tagstest.php?tag=all" id="all">&nbsp;ALL&nbsp;</a></li>
devient

Code : Tout sélectionner

<li><a class="<? echo $class ?>" href="tagstest.php?tag=all" id="all">&nbsp;ALL&nbsp;</a></li>

Re: Changer de classe css en fonction de l'url dynamique

par fannym » 02 déc. 2014, 17:10

oui ici en effet, mais il y figure dans mon code sur le serveur...

Re: Changer de classe css en fonction de l'url dynamique

par ecumastor » 02 déc. 2014, 17:06

Salut,
Il manque un guillement dans $url = $_SERVER['REQUEST_URL];