Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 切换功能:记住位置_Php_Javascript_Toggle - Fatal编程技术网

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()
。如果你愿意,我可以重写这个问题,利用这些函数和支持多切换元素。谢谢你的帮助。我尝试了不同的方法,但效果不太好。大多数时候,如果最后一次切换我做了一些其他人将遵循的事情,然后工作良好,这对我来说有点奇怪