2013-08-26 171 views
0

使用CSS Refresh我的朋友使用PHP和'fopen'远程显示和隐藏div标签成为可能。目前他正在度假并且无法联系。这个想法是,当按下按钮时它改变了CSS文件。远程显示和隐藏div标签

这样做的目的是为远程在线会议显示带有PDF内部命令的iframe。我不使用TeamViewer会议或类似的事情的原因是因为我必须使用的互联网连接非常乏味。我以为加载PDF格式的div标签会得到所有下载并准备好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

以重命名您的$ slide = $ _POST ['next'];或 $ slide = $ _POST ['previous'];如果您以这种方式离开,它只有一个值$ _POST ['previous']因为一个覆盖另一个 – Jim

+0

它现在的行为如何?是否有任何工作?更改'header(“Location:next.php?slide =”。$ slide_next。“”);'to 'header(“Location:next.php?slide =”。$ slide_next);' – Vector

回答

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,content if admin.php:http://pastebin.com/J5eDEbSe

+0

我把这一切放在一起,它显示了所有的div,而不仅仅是一个在txt中特化。 http://86.13.162.21/new_meeting/ – JosephFTaylor

+0

您是否在