2017-06-02 46 views
0

我在Yii2有一个项目。我想执行一个ajax调用,但jQuery导航到控制器方法insted的异步请求。 在视图中,我有这样的代码: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调用?

回答

0

链接用于导航到下一页,建议不要使用链接来执行按钮类型功能。反正你可以使用yii2组件内置的链接,其中有选择不重新直接

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

不,这并没有帮助 – Donik

+0

检查天气,你打通过AJAX的网址是否正确? –