我的控制器中有一个登录方法,我检查数据库中是否有这样的用户。我按下提交按钮时调用此方法。我同时从视图中显示登录。
在我的情况下,如果有这样的用户,它不会显示消息。我想因为在我的控制器中我加载视图。
如果有这样的用户使用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 :(得分:0)
如果您不想加载“默认”模板,请尝试使用$this->auto_render = FALSE;
kohana控制器也有方法is_ajax $this->request->is_ajax()
答案 1 :(得分: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');
}
}