Problème pour cacher/montrer un bloc de page.
Keykoss
-
arthezius Messages postés 3756 Statut Membre -
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
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:
- Problème pour cacher/montrer un bloc de page.
- Impossible de supprimer une page word - Guide
- Bloc-notes (windows) - Télécharger - Traitement de texte
- Comment imprimer un tableau excel sur une seule page - Guide
- Cacher ses amis sur facebook - Guide
- Cacher son numéro - Guide
7 réponses
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>
<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>
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>
<a onclick="switchMenu('news');" >Afficher/masquer la news</a>
<div id='news' style="display:none;" >
ta news
</div>
Pour rester sur ma solution (qui marche chez moi), il faut mettre l'url comme tel :
<option value="http://URL">item1</option>
<option value="http://URL">item1</option>
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ou tout simplement en mettant
style="display:block" >
dans ton div
style="display:block" >
dans ton div
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 :
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.
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é.</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élé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.
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.
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.
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 ?
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.