我只是想让我的第一个 jquery ajax 登录,而且我是 jquery 的初学者。
我的问题是我真的不知道如何返回表单验证错误。
这是我的控制器。
function login()
{
$this->form_validation->set_rules('email', 'Email', 'reqired|valid_email|callback_check_name');
$this->form_validation->set_rules('password', 'Passsword', 'reqired|callback_check_pass');
if($this->form_validation->run() !== FALSE){
$identity = $this->input->post('email');
$password = $this->input->post('password');
$remember = TRUE; // remember the user
$this->ion_auth->login($identity, $password, $remember);
}
}
function check_email()
{
if(!$this->ion_auth->email_check($this->input->post('email')))
{
$this->form_validation->set_message('check_email', 'Cant find this email in database');
return false;
}
}
function check_pass()
{
$query = $this->db->query(" SELECT password FROM mma_users WHERE password = '".sha1($this->input->post('password'))."' ");
if($query->num_rows() == 0)
{
$this->form_validation->set_message('check_pass', 'Incorrect password given');
return false;
}
}
login.js
$(function() {
$('.top-login-form').on('submit', function(e){
e.preventDefault();
var loginInfo = $(this).serialize();
$.ajax({
type: "POST",
url: "user/ajax/login",
data: loginInfo,
dataType: "json",
success: function(data){
alert('all ok');
},
error: function(data) {
$('.login-info').slideDown();
$('.login-info').html(data);
}
});
});
});
和向下滑动 html
<div class="well login-info">
<div class="alert alert-error">
<strong>Oh snap!</strong>
<?php echo json_encode(validation_errors()); ?>
<strong>Having troubles logging in?</strong>
<div class="recover">
<a href="#" class="btn btn-danger"><i class="icon-warning-sign icon-white"></i> Yes i think i forgot my password</a>
<a href="#" class="btn btn-danger"><i class="icon-envelope icon-white"></i> Yes i think i forgot my email</a>
</div>
</div>
我面临以下问题,每次如果我插入错误的电子邮件或密码或正确的密码,我总是会收到成功消息(警报一切正常)。
我不想让任何人给我写这个表格,只要指出我缺少什么,如果它不是一个大的要求(基本的例子会很好)
谢谢你。