使用CSS Refresh我的朋友可以使用PHP和'fopen'远程显示和隐藏div标签。他正在度假,目前无法接触。这个想法是当按下按钮时它改变了CSS文件。
这样做的目的是在远程办公用于在线会议的命令中显示带有PDF的iframe。我没有使用TeamViewer Meeting或类似的东西的原因是因为我必须使用的互联网连接是乏味的。我认为在div标签中加载PDF会将所有内容下载并准备好让CSS文件更改以显示它。
在我尝试添加上一个幻灯片按钮之前,它正在工作(只有下一个幻灯片按钮):
<?php
if(isset($_POST['submit'], $_POST['next']))
{
$slide = $_POST['next'];
$slide = $_POST['previous'];
$slide_next = $slide + 1;
$slide_previous = $slide - 1;
$slide_current = $slide;
header("Location: next.php?slide=".$slide_next."");
} else {
if(isset($_GET['slide']))
{
$slide_next = $_GET['slide'];
}
else
{
$slide_next = "2";
}
echo ('
<form action="" method="post">
<input type="hidden" name="next" value="'.$slide_next.'" />
<input type="submit" name="submit" value="Go to Slide '.$slide_next.'" />
</form>
');
}
$myFile = "../css/changer.css.";
$fh = fopen($myFile, 'w') or die("Can't open zee file - error woo woo error");
$stringData = "#content$slide_current {\n";
fwrite($fh, $stringData);
$stringData = " visibility: visible;\n";
fwrite($fh, $stringData);
$stringData = "}\n";
fwrite($fh, $stringData);
$stringData = ".content:not(#content$slide_next) {\n";
fwrite($fh, $stringData);
$stringData = " visibility: hidden;\n";
fwrite($fh, $stringData);
$stringData = " height: 0px;\n";
fwrite($fh, $stringData);
$stringData = "}\n";
fwrite($fh, $stringData);
fclose($fh);
?>
我无法回到它工作时的状态,因为我直接在我的朋友存储备份的FTP上更改了它,目前我无法访问它们。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
如果我了解您,您需要更改所有浏览器中某些div元素的可见性,这些浏览器会打开您的网站,对吗?你选择的方式非常奇怪,你可以使用jQuery的ajax和setInterval。 例如:
用户的PHP:
<?php
$curSlide = file_get_contents("/tmp/slidenumber.txt");//Get current active slide
if (!isset($_POST['testSlideChange'])):
//If there are no POST var, saying that this is an ajax update request, output the HTML page to browser:
?>
<div id="slide-1" class="slide <?php if($curSlide==1) echo 'visible'?>">Content of slide1</div>
<div id="slide-2" class="slide <?php if($curSlide==2) echo 'visible'?>">Content of slide2</div>
<div id="slide-3" class="slide <?php if($curSlide==3) echo 'visible'?>">Content of slide3</div>
<div id="slide-4" class="slide <?php if($curSlide==4) echo 'visible'?>">Content of slide4</div>
<?php else: //else, if we have POST-var, just return current slide as a number
echo $curSlide;
endif; ?>
CSS:
slide
{ display:none; }
slide.visible
{ display:block; }
JS:
$(document).ready(function(){
//test for slide change every 1 second
setInterval(testSlideChange,1000);
});
function testSlideChange()
{
//make post ajax request
$.post('http://my.web.site.com/this_page.php', {'testSlideChange' : 1} , function(data) {
//if result slide hasn't got class "visible", lets take it from the visible one, and give to a new one.
if (!$('#slide-' + data).hasClass('visible')
{
$('.slide.visible').removeClass('visible');
$('#slide-' + data).addClass('visible');
}
}
}
要在服务器端更改幻灯片,您只需将另一个数字写入文件/tmp/slidenumber.txt,可以通过简单的服务器php脚本或手动完成。
我已经创建了一个如何工作的例子。 工作实例!
用户页面:http://kovka54.ru/test/index.php(用户可在此处查看幻灯片)
管理页面:http://kovka54.ru/test/admin.php(管理员可在此处设置有效幻灯片)
在单独的窗口(例如,在两个浏览器中)打开此页面并观看在管理端更改幻灯片时用户幻灯片的更改方式。
该示例包含3个文件:index.php,admin.php和slidenumber.txt(仅包含单个数字,开头为“1”(不含引号)。
index.php的内容:http://pastebin.com/zge3MbAQ,内容如果是admin.php:http://pastebin.com/J5eDEbSe