我有一个简单的页面,显示比赛结果。将结果从CSV文件中提取,该文件会在每次比赛结束时更新。更改可能是微妙的,因此仅当结果不同时,才希望具有动画效果,淡入/淡出或颜色更改等。如果CSV文件有新结果作为更新的视觉辅助,我想在表中仅添加一个
。编辑:我不确定从哪里开始实施,因此下面没有代码。 CSV每1秒扫描一次并更新表格。我想要的结果是,如果/当数组结果更改时,表结果具有动画,否则没有动画。
编辑2 :我试图将结果数据中的当前赛车号码($ csv [1])输出到文件中,然后对照当前比赛编号进行检查,但没有似乎有效。当我拉$ lastrace [0]和$ csv [1]时,它们总是相同的数字。我以为在PHP中更高的级别在编写新数字之前会获得$ lastrace,但事实并非如此。
// Get Racer No from previous race
$lastrace = str_getcsv(file_get_contents('lastraceno.txt'));
// Puts current racer no to CSV file
$file = fopen("lastraceno.txt","w");
fputcsv($file,explode(',',$csv[1]));
fclose($file);
我的代码如下所示-修剪了一些不相关的代码。
index.php
<head>
<script src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
refreshTable();
});
function refreshTable(){
$('#tableHolder').load('table.php', function(){
setTimeout(refreshTable, 1000);
});
}
</script>
</head>
<body background="timebg.jpg">
<div id="tableHolder"></div>
</body>
table.php
<?php
$f_pointer=fopen("csv.txt","r"); // file pointer
while(! feof($f_pointer)){
$csv=fgetcsv($f_pointer);
foreach($csv as &$val){
if($val === "" || $val === false || $val === null) $val = "NA";
}
}
?>
<table>
<tr>
<td><?php echo $csv[2] ?> <?php echo $csv[3]?></td>
</tr>
</table>
答案 0 :(得分:0)
已解决
在我的数组中,结果文件中的赛车编号为$ csv 1。我发现将$ csv 1写入新的CSV文件,并将$ csv 1与$ lastrace [0]进行比较,每次刷新均起作用。
使用if else语句,我比较了信息并根据是否存在匹配项设置了变量。如果匹配的数据变量为'0',则无需执行任何操作。如果$ csv 1与$ lastrace [0]不匹配,则变量为'1',并将新的种族编号发送到lastraceno.txt以供将来更新。
然后我可以根据变量是0还是1来设置CSS类。
使用[https://daneden.github.io/animate.css/]Animate.CSS 1
实现的CSS动画index.php
<head>
<script src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
refreshTable();
});
function refreshTable(){
$('#tableHolder').load('table.php', function(){
setTimeout(refreshTable, 1000);
});
}
</script>
</head>
<body background="timebg.jpg">
<div id="tableHolder"></div>
</body>
table.php
<?php
$f_pointer=fopen("csv.txt","r"); // file pointer
while(! feof($f_pointer)){
$csv=fgetcsv($f_pointer);
}
// Replace blank lines with NA
foreach($csv as &$val){
if($val === "" || $val === false || $val === null) $val = "NA";
}
// Get Racer No from previous race
$lastrace = str_getcsv(file_get_contents('lastraceno.txt'));
// Puts current racer no to CSV file
if ($lastrace[0]==="$csv[1]") {
$newrace = 0; // This is not a new race
} else {
$newrace = 1; // This is a new race
$file = fopen("lastraceno.txt","w");
fputcsv($file,explode(',',$csv[1]));
fclose($file);
}
if ($newrace == '1') {
$newtimes = "class='animated zoomIn'";
} else { }
<table <?php echo $newtimes ?>>
<tr>
<td>Text to animate</td>
</tr>
</table.