╃巡洋艦㊣ 2011-03-25 14:42:42 7976次浏览 4条评论 2 1 0

使用AJAX更新内容的最简单的方法是使用partialRender方法。

对于本例我有三个文件:一个控制器(HelloWorldController.php)及两个视图(index.php和_ajaxContent.php)

controllers/HelloWorldController.php

class HelloWorldController extends CController
{
    public function actionIndex()
    {
        $data = array();
        $data["myValue"] = "Content loaded";
 
        $this->render('index', $data);
    }
 
    public function actionUpdateAjax()
    {
        $data = array();
        $data["myValue"] = "Content updated in AJAX";
 
        $this->renderPartial('_ajaxContent', $data, false, true);
    }
}

myValue是actionIndex设定的“加载内容”,这个变量是加载的视图时index.php传递给“index.php”和“_ajaxContent.php”

注意:如果在你的控制器文件使用的是accessRules,你将需要修改accessRules()加适当的方法名—在这种情况下的updateajax是这样的:

array('allow',  // allow all users to perform 'index' and 'view' actions
    'actions'=>array('index','view','updateajax'),
    'users'=>array('*'),
),

views/helloWorld/index.php

<div id="data">
   <?php $this->renderPartial('_ajaxContent', array('myValue'=>$myValue)); ?>
</div>
 
<?php 
echo CHtml::ajaxButton ("Update data",
    CController::createUrl('helloWorld/UpdateAjax'), 
array('update' => '#data'));
?>

ajaxButton调用“actionUpdateAjax”并把返回的数据插入这个"data"div

views/helloWorld/_ajaxContent.php

<?php echo $myValue ?>

显示$myValue

现在,我们运行index.php?r=helloWorld

觉得很赞
您需要登录后才可以评论。登录 | 立即注册