Php 切换功能:记住位置
我使用了切换功能,我想如果我刷新页面,它会记住切换的位置。 我尝试使用会话,但找不到更新会话的方法(当用户希望看到更多或更少的内容时) 这是我的密码:Php 切换功能:记住位置,php,javascript,toggle,Php,Javascript,Toggle,我使用了切换功能,我想如果我刷新页面,它会记住切换的位置。 我尝试使用会话,但找不到更新会话的方法(当用户希望看到更多或更少的内容时) 这是我的密码: <script language="javascript"> function toggle(showHideDiv, switchImgTag) { var ele = document.getElementById(showHideDiv); var imageEle =
<script language="javascript">
function toggle(showHideDiv, switchImgTag) {
var ele = document.getElementById(showHideDiv);
var imageEle = document.getElementById(switchImgTag);
if(ele.style.display == "block") {
ele.style.display = "none";
imageEle.innerHTML = '<img src="more.png"">';
}else {
ele.style.display = "block";
imageEle.innerHTML = '<img src="less.png">';
}
}
</script>
<?php
if(empty($_SESSION["toggle"])){
$_SESSION["toggle"] = 'show';
}?>
<a id="imageDivLink" href="javascript:toggle('contentDivImg', 'imageDivLink');"><img src="lesss.png"></a>Title
<?php if($_SESSION["toggle"] == 'show'){ ?>
<div id="contentDivImg" style="display: block;">
<?php
$_SESSION["toggle"] = 'hidden';
}
if($_SESSION["toggle"] == 'hidden'){ ?>
<div id="contentDivImg" style="display: none">
<?php $_SESSION["toggle"] = 'show';
} ?>
Try Show & hide
</div>
功能切换(showHideDiv、switchImgTag){
var ele=document.getElementById(showHideDiv);
var imageEle=document.getElementById(switchImgTag);
如果(ele.style.display==“块”){
ele.style.display=“无”;
imageEle.innerHTML='';
}否则{
ele.style.display=“块”;
imageEle.innerHTML='';
}
}
标题
尝试显示和隐藏
I second@Akam和@ChaseMoskal建议您为此使用JavaScript
它应该尽可能简单
<html>
<head>
<script type="text/javascript">
function toggle(showHideDiv, switchImgTag) {
var ele = document.getElementById(showHideDiv);
var imageEle = document.getElementById(switchImgTag);
if(ele.style.display == "block") {
// Also set the toggle cookie on toggle
document.cookie = 'toggle=hide'
ele.style.display = "none";
imageEle.innerHTML = '<img src="more.png"">';
}else {
// Also set the toggle cookie on toggle
document.cookie = 'toggle=show'
ele.style.display = "block";
imageEle.innerHTML = '<img src="less.png">';
}
}
</script>
</head>
<body>
<a id="imageDivLink" href="javascript:toggle('contentDivImg', 'imageDivLink');"><img src="lesss.png"></a>Title
<div id="contentDivImg" style="display:block">Try Show & hide</div>
<script type="text/javascript">
// Run at the end of the body so that the dom is ready for us
// Dont beleave me? reade this: https://groups.google.com/forum/#!topic/closure-library-discuss/G-7Ltdavy0E
(function(){
// Get the cookie we want to check using a fancy-pants regex
var cookie = document.cookie.replace(/(?:(?:^|.*;\s*)toggle\s*\=\s*([^;]*).*$)|^.*$/, "$1");
if (cookie === 'hide')
// If the cookie says hide, just use the toggle function
// The user wont see the change because were still running way before readystate complete
toggle('contentDivImg', 'imageDivLink');
}())
</script>
</body>
</html>
功能切换(showHideDiv、switchImgTag){
var ele=document.getElementById(showHideDiv);
var imageEle=document.getElementById(switchImgTag);
如果(ele.style.display==“块”){
//还将切换cookie设置为启用切换
document.cookie='toggle=hide'
ele.style.display=“无”;
imageEle.innerHTML='';
}否则{
//还将切换cookie设置为启用切换
document.cookie='toggle=show'
ele.style.display=“块”;
imageEle.innerHTML='';
}
}
标题
尝试显示和隐藏
//在正文末尾运行,以便dom为我们准备好
//别骗我?请阅读以下内容:https://groups.google.com/forum/#!主题/结束库讨论/G-7Ltdavy0E
(功能(){
//用花式裤子正则表达式得到我们想要检查的饼干
var cookie=document.cookie.replace(/(?:(?:^ |。*;\s*)toggle\s*=\s*([^;]*).$)|.*$/,“$1”);
如果(cookie==='hide')
//如果cookie显示隐藏,只需使用切换功能
//用户不会看到更改,因为在readystate完成之前,我们仍在运行
切换('contentDivImg','imageDivLink');
}())
这将使用document.cookie将切换cookie设置为显示或隐藏。
如果切换cookie是隐藏的,则在页面完成加载之前调用切换函数
请注意,当通过http从远程服务器(或本地主机)提供文件时,这将起作用,但如果使用file:协议检索文件,则不会起作用,因为Cookie与域关联
如果你想了解更多关于在JavaScript中使用cookie的知识,或者只是想复制一些有用的函数(甚至是一个小框架),请查看使用JavaScript cookie…他说得对,在我的脑海里——JavaScript Cookies听起来像是一种方法。我尝试使用cookie,但我也遇到了同样的问题,因为当我刷新时它仍然显示出同样的效果。嗨,谢谢!我读了你给我的东西,现在我试着拥有不止一个开关。我的问题是:如果(cookie=='hide')切换('contentDivImg','imageDivLink');如果我设置了一个新的切换,cookie将如何知道隐藏哪个切换?您可以根据要切换的元素的
id
s来命名cookie。例如,ele.id+'-切换'
。对于检查dirrerent cookies的值,我郑重建议使用此方法,它提供了检查值的getItem()
方法,以及setItem()
removietem()
和hasItem()
。如果你愿意,我可以重写这个问题,利用这些函数和支持多切换元素。谢谢你的帮助。我尝试了不同的方法,但效果不太好。大多数时候,如果最后一次切换我做了一些其他人将遵循的事情,然后工作良好,这对我来说有点奇怪