0

我快疯了,我在 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>

但它不起作用......

4

2 回答 2

1

setInterval 调用错误

在问题中有这样的:

setInterval(showText(), 1000);

它将调用每秒的结果 ,但是没有返回值(更不用说,返回一个函数),因此它只会在文档准备好时有效地调用一次。showTextshowTextshowText

要修复此错误,请使用:

setInterval(showText, 1000);

它将每秒调用一次该函数。 showText

于 2013-02-15T05:48:32.227 回答
-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

于 2013-02-15T05:07:27.247 回答