我要做的是:1)显示在一个DIV中进行的最后一次备份的实时计数 2)随着时间的推移改变另一个DIV的颜色以及其中的文本
我是怎么做的:通过使用Jquery加载刷新元素。
到目前为止成功:我已成功显示时间计数,但无法理解如何更改其他DIV的文本和颜色。
我在想,如果某种方式可以在每次加载时从脚本中传递颜色值,那么它可能会起作用,但我不确定我的方法和我对任务的想法是否正确。 我看了整个网络,但没有任何东西派上用场。
我真的很感激一些帮助。 也欢迎对代码进行改进。 :)
提前感谢..
PHP
<?php
$dir="DB_Backups/";
$file= array();
$file = scandir($dir, 1);
if ('.' === $file || '..' === $file)
continue;
$newest_file=$dir.$file[0];
if(is_file($newest_file)){
$time=time()-filemtime($newest_file);
if($time<2){
echo "Last Backup just now";
}
if($time>=2 && $time<60){
echo "Last Backup few seconds ago";
}
else
if($time>=60 && $time<2*60){
echo "Last Backup a minute ago";
}
else
if($time>=2*60 && $time<3600){
echo "Last Backup few minutes ago";
}
else
if($time>=3600 && $time<2*3600){
echo "Last Backup an hour ago";
}
else
if($time>=2*3600 && $time<86400){
echo "Last Backup few hours ago";
}
else
if($time>86400){
echo "Last Backup on ".date("F d, Y",filemtime($newest_file));
}
}
else{
echo "Backup not yet performed!";
}
?>
JQuery的
<script src="jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
setInterval(function(){
$("#status").load("f_backupstatus.php");
},1000);
});
</script>
HTML
<div id="test" style="background-color: #0066CC;">
<span id="status" style="color:#FFFFFF;"></span></div>
<div id="colour" style="background-color: #999999">colour</div>
答案 0 :(得分:1)
您始终可以返回JSON对象。在PHP文件中,拥有响应和颜色的数组可能是个好主意:
PHP:
<?php
$dir = "DB_Backups/";
$file = array();
$file = scandir($dir, 1);
$newest_file = $dir.$file[0];
$responses = array(
['status' => 'Last Backup just now', 'colour' => 'green'],
['status' => 'Last Backup a few seconds ago', 'colour' => 'blue'],
['status' => 'Last Backup a minute ago', 'colour' => 'violet'],
['status' => 'Last Backup a few minutes ago', 'colour' => 'yellow'],
['status' => 'Last Backup on'.date("F d, Y", filemtime($newest_file)), 'colour' => 'orange'],
['status' => 'Backup not performed yet!', 'colour' => 'red'],
);
if(is_file($newest_file)) {
$time=time()-filemtime($newest_file);
}
if ($time > 86400) {
$return = $responses[5];
} else if ($time > 7200) {
$return = $responses[4];
} else if ($time > 3600) {
$return = $responses[3];
} else if ($time > 120) {
$return = $responses[2];
} else if ($time > 60) {
$return = $responses[1];
} else {
$return = $responses[0];
}
return json_encode($return);
?>
的Javascript:
$(function() {
setInverval(function() {
$.ajax({
url: 'f_backupstatus.php',
success: function(data) {
data = JSON.parse(data);
$('#status').text(data['status']);
$('#colour').css('background-color', data['colour'])
}
});
}, 1000);
}):