Php yii cgridview ajaxlink仅在第一页中有效
我有一个cgridview,其中一个专栏中有一个ajaxlink。ajaxlink仅在第一页中工作正常。对于其他页面,无论我如何单击ajaxlink,它都会在第一页中更新结果Php yii cgridview ajaxlink仅在第一页中有效,php,yii,Php,Yii,我有一个cgridview,其中一个专栏中有一个ajaxlink。ajaxlink仅在第一页中工作正常。对于其他页面,无论我如何单击ajaxlink,它都会在第一页中更新结果 $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'promotion-facility-grid', 'ajaxUpdate'=>true, 'dataProvider'=>$model->search(), 'filter'=
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'promotion-facility-grid',
'ajaxUpdate'=>true,
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array( 'name'=>'pf_branch', 'value'=>'$data->pfBranch->branch_name'),
array( 'name'=>'pf_category', 'value'=>'$data->pfCategory->pc_name'),
array( 'name'=>'pf_photo', 'type' => 'raw', 'value'=>'CHtml::image(Yii::app()->baseUrl . "/images/facility/" .$data->pf_photo, "", array("width"=>"150px"))'),
'pf_name',
array(
'name' => 'pf_main_view',
'htmlOptions'=>array('style'=>'text-align: center'),
'value' => 'CHtml::ajaxLink("<span id=\'MV$data->pf_id\'>$data->pf_main_view</span>", array("promotionFacility/Ajaxcontent", "id"=>$data["pf_id"]),array("update" => "#MV$data->pf_id"))',
'type' => 'raw',
),
/*
'pf_price',
'pf_currency',
'pf_link',
'pf_status',
*/
array(
'class'=>'CButtonColumn',
'template'=>'{update}{delete}',
'buttons'=>array
(
'update' => array
(
'label'=>'update',
'url'=>'Yii::app()->createUrl("promotionFacility/updatepanel", array("id"=>$data->pf_id,"view"=>$data->pf_view,"branch"=>$data->pf_branch))',
),
),
),
),
我错过了什么?这与
ajaxupdate
或afterajaxupdate
有关吗?是的,您错过了afterajaxupdate()
。您正在加载网格,但不更新事件
我建议:
array(
'name' => 'pf_main_view',
'htmlOptions'=>array('style'=>'text-align: center'),
'value' => function($data){
return CHtml::link("<span id='MV$data->pf_id'>$data->pf_main_view</span>","",array("onclick"=>"js:ajax_function(".$data->pf_id.")")),
},
'type' => 'raw',
),
在这种情况下,您不需要手动执行afterAjaxUpdate()和绑定事件。这不仅仅是示例代码:其中存在sql注入漏洞。@Lennartvd我可以知道如何改进查询吗?您应该转义查询中直接使用的任何变量,甚至使用参数化查询。既然您使用的是Yii,为什么不将Yii-DAO与标准db组件一起使用呢。查看此页面。整页都读得很好,但第6章(绑定参数)特别关注这一点。如果你想在阅读易道之后得到进一步的解释或举例,请告诉我。@Lennartvd。。好啊谢谢我会把文件通读一遍
array(
'name' => 'pf_main_view',
'htmlOptions'=>array('style'=>'text-align: center'),
'value' => function($data){
return CHtml::link("<span id='MV$data->pf_id'>$data->pf_main_view</span>","",array("onclick"=>"js:ajax_function(".$data->pf_id.")")),
},
'type' => 'raw',
),
function ajax_function(id){
$.ajax({
//your request here
//id is your parameter from grid
});
}