这个脚本有效,它会加载到我的图像中。
我希望在10秒之后加载一个新图像,当我尝试这个时它没有对我做错了什么建议?
<?php header("Refresh: 5; URL=mytestfile.php"); ?>
<div style="width: 964px;">
<div style="float: left; width: 240px;">
<?php $mybanners[1] = '<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>';
$mybanners[2] = '<a href="/chiropodist/"><img src="banners/chiropody.jpg"></a>';
$mybanners[3] = '<a href="/fitness-instructor/"><img src="banners/fitness ball.jpg"></a>';
$mybanners[4] = '<a href="/dietician/"><img src="banners/Dietician.jpg"></a>';
$mybanners[5] = '<a href="/alexander-technique/"><img src="banners/Alexander technique.jpg"></a>';
$id = rand(1,5);
echo $mybanners[$id];
// this is the section I tried to control the delay
$mybanners = 0;
for($i=0; $i<10000; $i++){
if($i=='10000'){
$mybanners++;
$i = 0;
}
if($mybanners=='10'){
$mybanners=0;
}
}?>
答案 0 :(得分:0)
你无法通过PHP控制这个,这是一个Javascript用例。 for
不是与时间相关的控件:http://php.net/manual/en/control-structures.for.php
你应该在Javascript中有一个图像列表:
var myImages = [
'<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
'<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
'<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
'<a href="/chiropractor/"><img src="banners/chiropractor.jpg"></a>',
];
(你当然可以用PHP生成这个列表)
然后,每隔10秒,用它做一些事情:
var i = 0;
window.setInterval(function() {
alert(myImages[i]);
i++;
, 10000}
PHP如果要生成页面,在将页面提供给客户端之后就无法做任何事情。
答案 1 :(得分:0)
如果您尝试使用Refresh标头循环,则不需要循环。
此外,计数到10000不需要10秒。
你正在使用你以前的urls数组作为索引......
简而言之,再次构建它。
如果您想在浏览器中旋转它们,请将网址列表设为javascript。
编辑:添加示例
1)使网址可用于javascript:
在php中输出javascript:
echo "<script>";
echo "var urlList = new Array();";
foreach ($urls as $url)
echo "urlList[urlList.length]='$url';";
2)旋转它们 这是每5秒运行一次功能的基本结构:
setTimeout(function() {}, 5000);
你需要找到一种方法来进行旋转:要么为数组的索引保留一个计数器,要么尝试随机:
setTimeout(function() {
var index = Math.round(Math.rand * urlList.length);
document.getElementById('#myimg').src.href=urlList[index];
}, 5000);
注意:我在这里写这段代码,它没有经过测试,但它应该足以让你走了。 一旦你开始使用它,考虑使用一些jQuery.fade转换。