2017-06-02 50 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的網址是否正確? –