unchanged
Title
Update content in AJAX with partialRender
The most easy way to update content in AJAX is to use the partialRender method.
For this exemple I have three files: a controller (HelloWorldController.php) and
two views (index.php and _ajaxContent.php)
<br />
#### controllers/HelloWorldController.php
~~~
[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);
}
}
~~~
The actionIndex set myValue to "Content loaded" and this variable is
passed to the view "index.php" and to "_ajaxContent.php"
<br />
#### views/helloWorld/index.php
~~~
[php]
<div id="data">
<?php $this->renderPartial('_ajaxContent',
array('myValue'=>$myValue)); ?>
</div>
<?php echo CHtml::ajaxButton ("Update data",
CController::createUrl('hello/UpdateAjax'),CController::createUrl('helloWorld/UpdateAjax'),
array('update' => '#data'));
?>
~~~
The ajaxButton call "actionUpdateAjax" and the returned data are
inserted in the div "data"
<br />
#### views/helloWorld/_ajaxContent.php
~~~
[php]
<?php echo $myValue ?>
~~~
Display $myValue
<br />
Now, run index.php?r=helloWorld
Enjoy!