更新内容用AJAX与partialRender [ 未指定版本 ]
使用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
╃巡洋艦㊣ 北京
注册时间:2010-11-21
最后登录:10小时前
在线时长:1674小时13分
最后登录:10小时前
在线时长:1674小时13分
- 粉丝1369
- 金钱76368
- 威望845
- 积分101558
共 4 条评论
不错,之前我也用过!感觉确实挺不错的!
如果有分页的情况下,使用这种方式冒似会有问题,求分享
代码部分都被转义了哇
学习了,谢谢!