jQuery导航到控制器方法?

时间:2017-06-02 10:08:29

标签: javascript jquery ajax yii2

我在Yii2有一个项目。我想执行一个ajax调用,但jQuery导航到异步请求的控制器方法。 在一个视图中,我有这个代码:

<a href="#" class="btn btn-info" style="margin-left: 15px" id="clearLogs"><?=Yii::t('app', 'Clear log history')?></a>

在自定义js文件中,我有这个(在文档准备好之后):

$('#clearLogs').click(function(e){
        e.preventDefault();  // don't follow the link
        $.ajax({
            url: '/admin/clear',
            data: {id: 1},
            success: function(){
                alert('success');
            }
        });
    });

在控制器方法中我有这个:

public function clear() {
        if (Yii::$app->request->isAjax) {
            $flag = 777;
            // .....
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ['flag' => $flag];
        }
    }

如何在没有页面重新加载的情况下执行此ajax调用?

2 个答案:

答案 0 :(得分:0)

链接用于导航到下一页,不建议使用链接来执行按钮类型功能。无论如何,您可以使用yii2组件构建一个链接,该链接可以选择不重定向

<?php echo Html::a(Yii::t('app', 'Clear log history'))',$url=false,['class'=>'btn btn-warning','id'=>'clearLogs']); ?>

答案 1 :(得分:0)

clear()更改为actionClear()

Yii2 URL Routing