使用YII中的时间间隔调用渲染部分

时间:2013-07-26 13:26:24

标签: php jquery ajax yii

我想用刷新整页自动更新div内容。所以我在YII中做了Ajax renderPartial。现在我使用AJAX按钮实现

我的代码如下

<?php 
      echo CHtml::ajaxButton ("Update data",
      CController::createUrl("blog/UpdateAjax?url=$url"), 
      array('update' => '#inrscrn'));
?>

现在我想在时间限制内渲染,请帮助

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚。我想你想要设置一个自动&amp;定期刷新div中的内容,而不是单击按钮。

这是您在网页上需要的JavaScript:

<script type="text/javascript">
    timeout = 60 * 1000; // in Milliseconds -> multiply with 1000 to use seconds
    function refresh() {
        <?php
        echo CHtml::ajax(array(
                'url'=> CController::createUrl("blog/UpdateAjax?url=".$url),
                'type'=>'post',
                'update'=> '#inrscrn',
        ))
        ?>
    }
    window.setInterval("refresh()", timeout);
</script>

但是向你的控制器发送一个URL不是一个好的方法,而是直接请求做一个需要返回相应数据的控制器的特殊AJAX返回。

<?php
public function actionTest(){
        if (isset($_REQUEST['AJAX']) || Yii::app()->getRequest()->getIsAjaxRequest()) {
            $this->renderPartial(
                'test',
                array('model' => $model),
                false,
                true
            );
        } else {
            $this->render(
                'test',
                array('model' => $model),
            );
        }
}
?>