Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii:使用ajax更新内容小部件_Php_Jquery_Ajax_Yii_Yii Widgets - Fatal编程技术网

Php Yii:使用ajax更新内容小部件

Php Yii:使用ajax更新内容小部件,php,jquery,ajax,yii,yii-widgets,Php,Jquery,Ajax,Yii,Yii Widgets,我在Yii框架中构建了一个通知小部件,它被称为每个页面,并向用户提供通知。现在我想用Ajax每隔10秒自动更新这些通知。结构如下: <?php class NotificationsWidget extends CWidget { public function init(){ } public function run() { } 您在控制器中设置了一个操作,并每10秒轮询一次,如果有更新,它将从局部视图返回通知,如果没有更新,则不会返回任何内容,这是一个框架实现,可以给您一个

我在Yii框架中构建了一个通知小部件,它被称为每个页面,并向用户提供通知。现在我想用Ajax每隔10秒自动更新这些通知。结构如下:

<?php

class NotificationsWidget extends CWidget {

public function init(){

}
public function run() {

}

您在控制器中设置了一个操作,并每10秒轮询一次,如果有更新,它将从局部视图返回通知,如果没有更新,则不会返回任何内容,这是一个框架实现,可以给您一个想法,请注意,它不会按原样工作

在布局文件中

...
// Your normal layout content

<?php Yii::app()->clientScript->registerScript("poll_ajax_notifications",
 'function getNotification(){'.
   CHtml::ajax(array(
       'url'=>array("//notifications/update"),
       'dataType'=>'html',
       'type'=>'GET',
       'update'=>'#divcontainingNotificationWidget',
         )
     ) . '. }
   timer = setTimeout("getNotification()", 10000);
    ', CClientScript::POS_END);
最后在views/notifications文件夹中创建一个名为
\u notificationsWidget.php
在视图中放置小部件调用

<?php 
  $this->widget('path.to.my.widget',array(
     //widget parameters
   ));

<?php 
  $this->widget('path.to.my.widget',array(
     //widget parameters
   ));