2016-01-03 69 views
0

我在我的控制器中有一個登錄方法,我檢查數據庫中是否存在這樣的用戶。按Submit按鈕時我調用這個方法。我同時顯示從視圖中登錄。如何在同一時間使用Ajax並返回視圖

在我的情況下,它不顯示消息,如果有這樣的用戶。我想是因爲在我的控制器中加載視圖。

如果有這樣的用戶使用Ajax,並且如果我返回視圖,那麼我如何顯示此消息? 我正在使用Kohana。謝謝!

我的代碼是:

$(document).ready(function(){ 
 

 
    $('#submit').on('click', function() { 
 

 
    if(username.length === 0 || password.length === 0) { 
 
     //...check if validation fails 
 
    } 
 
    else { 
 
     $.ajax({ 
 
     url: "/admin/signin" , 
 
     type: "POST", 
 
     data: { 
 
      "username":username, 
 
      "password":password 
 
     }, 
 
     success: function(data) { 
 
      if(data !== 'error') { 
 

 
      window.location = "/admin/index"; 
 
      } 
 
      else 
 
      { 
 
      alert('no such user'); 
 
      } 
 
     } 
 
     }); 
 
    } 
 

 
    }); 
 

 
});
public function action_signin() 
 
{ 
 

 
if ($_POST) { 
 
$is_admin = Model_Admin::signin($_POST);   
 

 
print 'success'; 
 
} else { 
 
print 'error'; 
 
} 
 
} 
 

 
$this->template->content = View::factory('admin/login_form'); 
 

 

 
}

+0

您是否設法找到任何解決方案? – Faraz

回答

0

如果你想不加載 '默認' 模板嘗試使用$this->auto_render = FALSE; 也Kohana的控制器已方法is_ajax $this->request->is_ajax()

0

你的控制器代碼將是喜歡這個。

public function action_signin() 
{ 
    if($this->request->is_ajax()){ 
     $this->auto_render = FALSE; 
    } 

    if ($_POST) { 
     $is_admin = Model_Admin::signin($_POST);   
     if($is_admin){ 
      print 'success'; 
     } else { 
      print 'error'; 
     } 
    }else{ 
    $this->template->content = View::factory('admin/login_form'); 
    } 
} 
相關問題