2013-07-26 2 views
0

전체 페이지를 새로 고침하여 div 콘텐츠를 자동으로 업데이트하고 싶습니다. 그래서 저는 YII에서 Ajax renderPartial을했습니다. 지금은YII에서 시간 간격을 사용하여 부분 렌더링을 호출합니다.

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

가 지금은 귀하의 질문은 매우 명확하지 않다

+0

"제한 시간이있는 렌더링"이라고 말하면 정확히 무엇을 의미합니까? –

+0

자바 스크립트 타임 이벤트가 필요합니다. 이 같은'window.setInterval ("javascript function", milliseconds);' – jmarkmurphy

답변

0

도와주세요 시간 제한에 렌더링 할 다음과 같이 AJAX의 온 클릭 버튼

내 코드를 사용하여 구현한다. 난 당신이 자동으로 & div 내에서 버튼을 클릭하여 콘텐츠의 정기적 새로 고침을 설정하려는 가정합니다.

이 당신이 당신의 페이지에 필요한 자바 스크립트입니다 :

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

그러나 그것은 당신의 CONTROLER에 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), 
      ); 
     } 
} 
?> 
관련 문제