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);

これは毎秒の結果 を呼び出しますが、戻り値がないため(ましてや関数を返す)、ドキュメントの準備ができたときに1回だけ効果的に呼び出されます。showTextshowTextshowText

このエラーを修正するには、次を使用します。

setInterval(showText, 1000);

これは1秒に1回関数 を呼び出します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は良い考えではなく、個人的な経験から、それは頻繁に機能しません。理由はわかりません。

php3番目に、内部で使用する場合は非表示フィールドを使用します。jQueryまた、サーバーへのajax呼び出しを使用して、応答オブジェクトから内部でそれらの値を使用することもできますjQuery

于 2013-02-15T05:07:27.247 に答える