我疯了,我在cakephp表中有这个代码:
<td style="width:50%">
<div id="progress<?=$turnTime['TurnTime']['name'];?>">
<?php if ($turnTime['TurnTime']['end_time'] < date('Y-m-d H:i:s')) {
echo __('Waiting...');
}else{
$percent = ((strtotime($turnTime['TurnTime']['end_time']) - strtotime(date('Y-m-d H:i:s')))/
(strtotime($turnTime['TurnTime']['end_time']) - strtotime($turnTime['TurnTime']['start_time'])))*100;
$p = 'width: '.round($percent, 2).'%';
//show the time left
$current_date = new DateTime(date('Y-m-d H:i:s'));
$since_current = $current_date->diff(new DateTime($turnTime['TurnTime']['end_time']));
echo $since_current->h.' hours - '.$since_current->i.' minutes - '.$since_current->s.' seconds Left';
?>
<div class="progress progress-striped active" id="bar">
<div class="bar" style= "<?php echo $p; ?>"></div>
</div>
<?php } ?>
</div>
</td>
我想每秒自动刷新div数据
<div id="progress<?=$turnTime['TurnTime']['name'];?>">
我尝试了几种方法,但是......请帮助我,谢谢
我尝试使用这样的jQuery:
<script>
$(document).ready(function(){
setInterval(showText(), 1000);
function showText(){
//alert("11");
$("#progress<?=$turnTime['TurnTime']['name'];?>").html(....some codes here...);
}
});
</script>
但它不起作用......
答案 0 :(得分:1)
在问题中有这个:
setInterval(showText(),1000);
每秒会调用 showText
的结果,但是showText
没有返回值(更不用说,返回一个函数)所以它会有效地调用{{ 1}}只有一次文件就绪。
要修复此错误,请使用:
showText
每秒会调用函数 setInterval(showText, 1000);
。
答案 1 :(得分:-1)
尝试
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function showText()
{
var hidden_field = $('#progress_get_me').val();
$("#progress"+hidden_field).html(....some codes here...);
}
$(function()
{
setInterval(showText, 1000);
});
</script>
<input type="hidden" value="<?=$turnTime['TurnTime']['name'];?>" id="progress_get_me" />
解释
程序员创建的函数必须在$(document).ready
的一侧声明,所以我在那里纠正了你。
第二个不要在php
内使用jQuery
这不是一个好主意,根据个人经验,它不常用,我不知道理由。
如果你想在php
内使用jQuery
,第三次使用隐藏字段你也可以使用ajax调用服务器,然后从响应对象中使用jQuery
内的那些值。