2013-07-26 26 views
0

我想用刷新整頁自動更新div內容。所以我在YII做了Ajax renderPartial。現在我實現了使用AJAX按鈕的onclick在YII中調用渲染部分使用時間間隔

我的代碼如下

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

現在我想渲染的時間限制,請幫助

+0

當你說「帶時間限制的渲染」時,你究竟是什麼意思? –

+0

您將需要一個javascript時間事件。像這樣的'window.setInterval(「JavaScript函數」,毫秒);' – jmarkmurphy

回答

0

你的問題不是很清楚。我想你想設置一個自動的&定期刷新一個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發送到您的CONTROLER一個好辦法,而不是進行直接要求作出的一個特殊的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), 
      ); 
     } 
} 
?>