我有一个li
,里面有一个div class="reload"
,其内容应该每10秒重新加载一次。
<li class="b1">
<div class="reload">
</div>
</li><!--col-->
所以我有一个脚本可以做到这一点。
<script type="text/javascript">
$('.b1').children('.reload').load('php/reload/reload.php'); // load the content at start
window.setInterval(function(e) {
$('.b1').children('.reload').load('php/reload/reload.php'); // reload the content every 10 sec
}, 10000);
在reload.php中,我从数据库中获取了一些内容。看起来像这样,有点......
<?php
// login info
require("../../connection_to_database_login.php");
// My query
$result = mysqli_query($l,'SELECT * FROM abcd WHERE efg=1 LIMIT 1');
// include some stuff
$r = mysqli_fetch_row($result);for ($p = 0; $p < $r[4]; ++$p){include("../some/stuff_$p.php");};
// include a random picture script or just load a picture
if ($r[4] == 0){include ('getRandPic.php');}
else {echo ('<img src="images/picture.png" />');}
?>
到目前为止一切都很好......一切正常。
getRandPic.php 文件..从文件夹中选择一张随机图片
<?php
$img_dir = "images/images";
$images = scandir($img_dir);
$html = array();
foreach($images as $img) {
if($img === '.' || $img === '..') {continue;}
if ( (preg_match('/.jpg/',$img)) || (preg_match('/.gif/',$img)) || (preg_match('/.tiff/',$img)) || (preg_match('/.png/',$img)) ) {
$html[] .= '<img class="img-responsive" src="'.$img_dir.$img.'" />';
}
else { continue; }
};
echo $html[rand(0,6)];
?>
所以这可行。
但问题是,我想检查它是否“包含随机图片脚本或只是加载图片”每5秒。
因此我需要每5秒检查一次"if ($r[4] == 0)"
。
所以我的问题是:还有其他办法吗?
答案 0 :(得分:1)
正如您在评论中所提到的......这只是一个粗略的指南。您必须根据本指南开发和编写自己的代码。
步骤1a: 可选
从您的网页拨打ajax电话到服务器。获取图像文件名。
步骤1b:
在php文件的服务器端执行数据库操作。
假设您有一个表imageTable
和列名images
,因此您可以使用查询SELECT images FROM imageTable
您必须更改查询,添加条件(例如,所有带动物和可爱标签的图像),如果您想限制您想要随机化的文件数,那么您也必须添加它。 / p>
第2步:
从DB中读取数据后,请阅读所有图像名称,并将其放在json
格式(json_encode)中。我个人更喜欢json。如果您愿意,还可以在简单字符串中返回所有名称,其中名称以逗号分隔。
第3步:
将您的回复存储在JS中。
var imagesArray = new Array();
$.ajax({
type: 'post',
url: pathtophpfile,
success: function(htmll) {
// get object with all data
imagesArray= JSON.parse(htmll);
},
});
第4步:
在名为imagesArray
的js对象中使用它后,使用setInetval每5秒执行一次任务。
读取0到imagesArray
长度的随机值,并更改图片代码的来源<img class="img-responsive" src="+ randomimage +" />
答案 1 :(得分:0)
定期更新程序将完成您的任务。 使用ajax框架,它将减少服务器端的数据库连接负担。 看看它。这是实现任务的简单而好的方式。
http://prototypejs.org/doc/latest/ajax/Ajax/PeriodicalUpdater/