Php 远程显示和隐藏div标记

Php 远程显示和隐藏div标记,php,css,pdf,Php,Css,Pdf,使用我的朋友可以使用PHP和“fopen”远程显示和隐藏div标记。他正在度假,目前无法联系。这个想法是当按下一个按钮时,它改变了CSS文件 其目的是通过命令远程显示内部带有PDF的iFrame,以用于在线会议。我不使用TeamViewer Meeting或simular的原因是我必须使用的internet连接非常繁琐。我认为在div标签中加载PDF会让它全部下载,并准备好让CSS文件改变以显示它 在我尝试添加上一个幻灯片按钮之前,它正在工作(只有下一个幻灯片按钮): <?php if(i

使用我的朋友可以使用PHP和“fopen”远程显示和隐藏div标记。他正在度假,目前无法联系。这个想法是当按下一个按钮时,它改变了CSS文件

其目的是通过命令远程显示内部带有PDF的iFrame,以用于在线会议。我不使用TeamViewer Meeting或simular的原因是我必须使用的internet连接非常繁琐。我认为在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);
?>

如果我理解您的意思,您需要在所有浏览器中更改某些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; ?>
JS:

要更改服务器端的幻灯片,只需将另一个数字写入文件/tmp/slidenumber.txt,可以通过简单的服务器php脚本或手动完成


我已经创建了一个它应该如何工作的示例。 工作实例

用户页面:(用户可以在此处查看幻灯片)
管理员页面:(管理员可在此设置活动幻灯片)
在单独的窗口(例如,在两个浏览器中)上打开此页面,观察在管理端更改幻灯片时用户的幻灯片是如何更改的。
该示例由3个文件组成:index.php、admin.php和slidenumber.txt(只包含一个数字,开头是“1”(不带引号)。
index.php的内容:,content if admin.php:

从重命名$slide=$\u POST['next']或$slide=$\u POST['previous']开始;如果您这样做,它只有一个来自$\u POST['previous']的值,因为其中一个正在覆盖另一个。它当前的行为如何?是否正常?更改
标题(“位置:next.php?slide=”“.$slide\u next.”;
标题(“Location:next.php?slide=“.$slide\u next”);
我已经把这些都放在一起了。它显示了所有的div,而不仅仅是txt中指定的div。你在标签中添加了css吗?你的nginx给了我一个404错误否,我把它放在一个单独的css文件中。现在应该可以备份了。编辑我的答案,注意底部:)
slide 
{ display:none; }

slide.visible
{  display:block; }
$(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');
       }
    }
}