我需要隐藏或显示里面有幻灯片的div。 这个想法是给用户一个链接,让他们隐藏或显示div。
目前,我使用<?php include('slideshow.php'); ?>
用户点击隐藏/显示div的链接后,我想调用第二个文件(
<?php include('no-slideshow.php'); ?>
)包含不同的div。
据我所知,没有办法通过会话实现这一点,或者至少我找不到解决这个问题的方法。
我的猜测是,这需要用cookies来完成,但我不知道如何。
答案 0 :(得分:0)
我不确定我明白了。您想在用户点击链接后隐藏div吗?
你为什么不用javascript这样做? (隐藏/显示div?)
答案 1 :(得分:0)
此命令将set a cookie命名为include
,其值为what to include
。
setcookie('include', 'what to include', time()+86400);
您可以在包含之前检查此Cookie:
if (isset($_COOKIE['include'])) {
include($_COOKIE['include'] . '.php');
} else {
include('slideshow.php');
}
注意:由于Cookie很容易伪造,因此您需要检查两次要包含的内容。
答案 2 :(得分:0)
如果您不想仅使用JavaScript方式来实现,那就是使用链接(需要重新加载页面)。
这只是基本的逻辑,不是一个完整的解决方案,但你认为你会明白这一点。
在网页上创建一个到服务器端脚本的链接。
<a href="toggle_visibility.php">hide/show</a>
创建脚本 togle_visibility.php 以处理用户的请求。
<?php
$hidediv = isset($_COOKIE['hide_div']) && ($_COOKIE['hide_div'] == 'hide');
$cookie_value = !$hidediv ? 'hide' : 'show';
setcookie('hide_div', $cookie_value, time()+32000000); // cookie expires after year
header('location: http://www.mysite.com/index.php');
?>
现在你需要的(在返回原始页面之后)是检查存储在cookie中的值,并决定你不想显示div来做用户。
<?php
... more code
$hidediv = isset($_COOKIE['hide_div']) && ($_COOKIE['hide_div'] == 'hide');
if ($hidediv) {
include('no-slideshow.php');
}
else {
include('slideshow.php');
}
... more code
?>
编辑:$ hidediv条件。
如果用户已禁用JavaScript,但如果在浏览器设置中禁用了Cookie,则无效。
我没有检查此代码,因此可能存在相同的拼写错误。