Problème pour cacher/montrer un bloc de page.

Keykoss -  
arthezius Messages postés 3756 Statut Membre -
Bonjour,

Je m'occupe actuellement du site de basket de mon club. J'ai des bases en HTML mais la fleime m'a emporté et j'utilise un petit logiciel de codage. Dans ma page, j'y ai inséré des balises Inculd pour l'entête, le menu de gauche et une bannière en bas de page. Voici a peux près comment est bâtit mon site.

Mon problème est le suivant. Dans mon includ d'entête, j'ai une partie qui affiche les news sur toutes les pages. Pour l'instant, je suis restreint en place, car l'affichage sur toutes les pages m'interdit d'utiliser trop de place pour surcharger le site. J'ai donc mis un petit code qui permet d'afficher ou de cache les news. Le problème, c'est qu'a chaque changement de page, les news réapparaissent, et si l'on veux les cacher, il faut de nouveau cliquer le bouton "cacher les news". Mon souhait, serais que lorsque l'on clique sur "Cacher les news", elles le soient pour toute la visite, et que le choix ne change pas a chaque changement de pages.

Voici l'adresse de mon site :
http://alssabasket.free.fr

Pour que vous compreniez mieux ce que je recherche, voici un site qui propose quelque chose du style rechercher :
http://www.barbok.fr

Sur mon site, lorsque l'on cache les news, au changement de page, les news réapparaissent. alors que sur "barbok", elles reste cacher si on a décidé ainsi jusqu'à avoir quitter le site.

Je chercherais donc a avoir quelque chose du même genre. Je ne vois pas trop comment faire, étant un webmaster en mousse ^^'.

Merci d'avance pour vos réponses, j'espère quelles me seront utilent.
Keykoss
A voir également:

7 réponses

AdminTOURS Messages postés 412 Statut Membre 92
 
Mouarf j'ai oublié le script dans le header

<script type="text/javascript">
function switchMenu(obj)
{
var el = document.getElementById(obj);
if(el.style.display != "block")
{ el.style.display = "block"; }
else
{ el.style.display = "none"; }
}
</script>
2
arthezius Messages postés 3756 Statut Membre 475
 
Effectivement ça marche mieux. Pas mal et bien pratique. Merci bien pour cette astuce.
0
Keykoss > arthezius Messages postés 3756 Statut Membre
 
Oui, je viens de tester le code, il marche =)

Mais lors de l'apparition de la page, il est caché. Serais-se possible d'avoir le même code mais avec l'apparition du code dès l'ouverture de la page et non l'inverse ?

En revanche après actualisation de la page, le code reviens à son état d'origine et ne reste pas comme on l'avais "laisser" ... est-ce une mauvais utilisation de ma part ?
0
arthezius Messages postés 3756 Statut Membre 475 > Keykoss
 
Je pense qu'il suffit de réadapter ces lignes:
if(el.style.display != "block")
{ el.style.display = "block"; }
else
{ el.style.display = "none"; }

en inversant les conditions.
if(el.style.display == "block")
{ el.style.display = "none"; }
else
{ if(el.style.display == "block")
{ el.style.display = "block"; } }


Je pense que ça pourrai marcher. A essayer.
0
AdminTOURS Messages postés 412 Statut Membre 92
 
Tu pourrais mettre ton texte dans un div mettons qu'il s'appelle "news"

<a onclick="switchMenu('news');" >Afficher/masquer la news</a>
<div id='news' style="display:none;" >

ta news

</div>
1
Keykoss
 
j'ai essayé mais cela ne marche pas, le texte afficher/masquer les news ne comporte pas de lien ...


Si quelqu'un peux m'éclairer =)
Keykoss
0
arthezius Messages postés 3756 Statut Membre 475
 
Par curiosité j'ai testé en faisant un simple copié/coller de ton code mais mon navigateur semble ignorer le lien. Du coup il ne m'affiche que le texte du lien.
0
AdminTOURS Messages postés 412 Statut Membre 92
 
Pour rester sur ma solution (qui marche chez moi), il faut mettre l'url comme tel :

<option value="http://URL">item1</option>
1
arthezius Messages postés 3756 Statut Membre 475
 
Je pense avoir une solution.
Tu fait un lien avec un bouton (apparance modifiable en css).
Exemple:
<input type="submit" name="cache" value="Cacher le bloc" />
Juste avant tu met en PHP:
<?php
if(!isset($_POST['cache']))
{if(!isset($_SESSION['cache']))
{echo '#code de ton bloc de news#';}
}
?>
Avec ça, ça devrai fonctionner.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AdminTOURS Messages postés 412 Statut Membre 92
 
COOL !

De rien ! N'hésite pas à mettre le post en résolu !
0
AdminTOURS Messages postés 412 Statut Membre 92
 
ou tout simplement en mettant

style="display:block" >

dans ton div
0
Keykoss
 
Je ne sais pas se qui ne marche pas, si c'est moi qui n'arrive pas a mettre en place vos codes ou le problème qui est mal compris.

Mon code pour cacher/montrer les news en lui même je l'ai. Le voici :

  <div class="content">
                  <div style="margin: 5px 10px 10px;">
                  <div style="" class="quotetitle"><strong>
                  </strong><input value="Masquer les news"
 style="margin: 0px; padding: 0px; width: 140px; text-align: center; font-size: 10px;"
 onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = 'Masquer les news'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Afficher les news'; }"
 type="button">
                  <noscript><span
style="color:#FF0000;background-color:#FFFFFF;font-weight:bold;text-decoration:underline;font-style:italic;">Cette
balise requiert Javascript d'activ&eacute;.</span></noscript>
                  </div>
                  <div class="quotecontent">
                  <div style="text-align: center;"><img
 alt=""
 src="http://img155.imageshack.us/img155/6619/sanstitre3jc9.png"><br>
.:: 27/12/08 ::.<br>
Ajout des photos du t&eacute;l&eacute;thon, barrages cadettes
et challenge Veolia.<br>
                  <img alt=""
 src="http://img155.imageshack.us/img155/6619/sanstitre3jc9.png"></div>
                  </div>
                  </div>
                  </div>


Mon problème est que si, sur la page d'accueil vous cliquez sur "cacher les news", elles se cachent normalement. Mais le truc c'est que lorsque vous changer de page, les news réapparaissent. C'est là mon problème, comment faire pour qu'au changement de page, la news reste comme c'était juste avant.
0
arthezius Messages postés 3756 Statut Membre 475
 
Ma solution (mon premier message) répondais justement à ça. J'avais mis en session le statut "masqué" du bloc.

Je la remet ici de manière un peu plus complète :
<?php
session_start ();
if($_POST['cache'] == 'Masquer') {$_SESSION['cache'] = 'OFF';}
if($_SESSION['cache'] != 'OFF')
{echo'<div><p>... news...</p><p><form method="post" action="cache.php"><input type="submit" name="cache" value="Masquer" /></form></p></div>';}
if($_SESSION['cache'] == 'OFF') {echo '<form method="post" action="cache.php">
<input type="submit" name="cache" value="Afficher" /></form>';}
?>

J'ai testé le code et il marche.
Dans mon exemple, la page s'appelle cache.php. Remplace l'url par celui de ta page et ça marchera.
0