我有一个包含许多单元格的单元格,其中包含很少的PHP脚本,用于搜索名为foo.txt的文本文档以获取数字信息。真的不需要代码来理解我的问题,但以防万一:
<?php
$input = "3.000000";
$file = file_get_contents("foo.txt");
$pos = strrpos($file, $input);
if($pos !== false){
$start = $pos + strlen($input);
$end = strpos($file, "00", $start);
$data = substr($file, $start, $end - $start);
$dataprocessed = round($data, 2, PHP_ROUND_HALF_DOWN);
echo $dataprocessed;
}else{
echo "Error";
}
?>
从那里我会得到像“34.23”这样的数字是正确的。问题是foo.txt每分钟更改/被覆盖,更改为“34.23”,但除非整个页面刷新,否则网页不会显示新数据。我想以某种方式拥有它,以便新的/覆盖的数据显示在标签中,而不是每分钟刷新整个页面。我有HTML / XHTML,PHP,JavaScript / JQuery经验有限的经验,并且一直在阅读关于AJAX的帖子和教程,但是不能让它工作。我愿意接受创意解决方案和解决方案。非常感谢提前!
答案 0 :(得分:0)
您可以使用setInterval
和$.load()
使用AJAX每隔几秒重新加载部分页面:
$(function(){
setInterval(function(){
$('div#table-container').load('website_url.php?randval=' + Math.random() + ' div#table-container table');
},10000);
});
每隔10秒,这将通过AJAX加载website_url.php
并抓取div#table-container table
部分,并通过替换当前div#table-container
内的内容插入当前页面
?randval=' + Math.random()
是解决IE6缓存问题的解决方法,如果您担心IE兼容性。
答案 1 :(得分:0)
如果您以统一的方式识别表格单元格,如:
<tr>
<td id ="a1"></td>
<td id ="a2"></td>
<tr>
<tr>
<td id ="b1"></td>
<td id ="b2"></td>
<tr>
然后在一个间隔到php页面设置一个ajax调用,这就是服务器以JSON格式进行调整,如:[{'cell':'a1','value':'34 .7}]; 您可以使用以下调用替换它们:
for (item in results) {
$("#" + item.cell).val(item.value);
}
之后剩下的唯一事情是为数据保留序列号#。每次更改时,都会获得一个新的序列号。因此,当客户端要求更改时,它会显示序列号,您可以更新它。客户端下次请求它时应显示最新的序列号。这样,您就不会经常向所有客户发送所有更改。
答案 2 :(得分:0)
我会使用带有setInterval的AJAX来检查是否要进行更改(comet)和标记获取列和行的数量,并使用带有jquery示例的nth-child()修饰符:
$(table#example tr:nth-child(2)td:nth-child(5))。html('my new html answer'); //意思是第2行第5列
要获得可能有用的第n个子值,您可以使用
$(this).index()+ 1因为nth-child不是基于0的