我对Yii很新,我正在处理导致我麻烦的CGridView
。
此CGridView
位于renderPartial
视图中。
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'ratesGrid',
'dataProvider'=>rates::model()->searchSameProperty($propertyid),
'columns'=>array(
'name',
'from',
'to',
'price',
array(
'header'=>'html',
'type'=>'raw',
'value'=>'\'
<a href="#" class="deleteRate btn btn-danger" data-rateid="\'.$data->id.\'">Delete Rate</a>
\'',
),
),));
Yii::app()->clientScript->registerScript('ratesdeletion', '
$("#ratesProperty").on("click", ".deleteRate", function(e){
e.preventDefault();
$.ajax({
"url":"'.CController::createUrl('rates/delete').'",
"type":"POST",
"data":{
"id":$(this).data("rateid"),
},
"success":function(data){
$.fn.yiiGridView.update("ratesGrid");
},
});
});
', CClientScript::POS_END);
好的部分是当我点击删除按钮时,它使用正确的ID调用“rate / delete”,但是当“rates / delete”完成其工作时,不知何故进行了另一个AJAX调用(我是从未编码过,请查看屏幕截图。
所以我的问题是:
为什么Yii正在创建我从未创建的第二个ajax调用?
如何避免第二次ajax通话?
编辑:
我尝试添加一个锚点,然后在点击事件中附加ajax调用,并继续进行第二次调用。
答案 0 :(得分:1)
当您从网格中删除某些项目时,首先ajax调用用于删除对服务器的请求,第二个请求用于在删除后重新创建网格。在使用像这样的ajax网格视图时,我们无法避免第二次ajax调用。