问题:期望在cgridview中点击设置的button传递id号到CJuiDialog中,进行处理,先看结果:
解决步骤:
一、在buttons中利用js获取当前按钮的链接,进而利用ajax传递值
二、在cgridview这个视图中定义这个弹出层:
<!--the dialog for updatAdCode begin -->
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'updateAdCodeDialog',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'更改Img/Flash',
'modal' => true,
'autoOpen'=>false,
'minWidth' => '500',
),
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
<!--the dialog for updatAdCode over -->
三、model中:
/*
* get the ajax request and echo the html content
*/
public function actionShowAdCode()
{
if (Yii::app()->request->isAjaxRequest)
{
$ad_id = $_GET['id'];
$model_for_dialog = Ad::model()->findByPk($ad_id);
echo $this->renderPartial('_updateAdCode', array('model' => $model_for_dialog));
}
}
四、_updateAdCode.php
五、UpdateAdCode
用这种方法感觉不太好,有点麻烦,不如用其他的插件
参考资料:http://www.yiiframework.com/forum/index.php/topic/19586-ajaxlink-in-cgridview/(本案例中用的方法)
http://www.yiiframework.com/forum/index.php/topic/23807-how-do-i-post-value-to-cjuidialog/
http://www.yiiframework.com/forum/index.php/topic/19586-ajaxlink-in-cgridview/
http://www.yiiframework.com/forum/index.php/topic/9931-how-to-call-cjuidialog-in-cgridview/
http://stackoverflow.com/questions/7708455/how-to-pass-the-view-id-to-the-cjuidialog-box