作者:大苏打的苏打水 | 来源:互联网 | 2013-06-07 16:18
使用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
显示$myValue
现在,我们运行index.php?r=helloWorld