【问题标题】:Extra Ajax on CGridView on YiiYii 中 GridView 上的额外 Ajax
【发布时间】:2014-01-02 01:21:09
【问题描述】:

我对 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 调用“rates/delete”,但是当“rates/delete”完成其工作时,会以某种方式进行另一个 AJAX 调用(我从未编码),请查看屏幕截图。

所以我的问题是:

  1. 为什么 Yii 会创建我从未创建过的第二个 ajax 调用?

  2. 如何避免第二次 ajax 调用?

编辑:

我尝试添加一个锚点,然后在单击事件中附加 ajax 调用,它会继续进行第二次调用。

【问题讨论】:

    标签: php ajax yii cgridview


    【解决方案1】:

    当您从网格中删除某些项目时,第一个 ajax 调用是对服务器的删除请求,第二个请求是在删除后重新创建网格。在使用这样的 ajax 网格视图时,我们无法避免第二次 ajax 调用。

    【讨论】:

    • 非常感谢您的快速回答,所以我应该将其更改为自定义按钮?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    相关资源
    最近更新 更多