Ajax просто означает, что ваш контроллер входа вернет что-то машиночитаемое (json / xml) вместо html.
Вашему контроллеру просто нужно установить переменную сеанса.
class Login extends Controller {
function __construct() {
parent::Controller();
$this->load->model('user_m');
}
function json_login() {
$user = $this->user_m->get_user($_POST['username']);
if($user->password == md5($_POST['password'])) {
$this->session->set_userdata('username',$user->username);
print json_encode($this->user);
}
else {
print json_encode(FALSE);
}
return;
}
function logout() {
$this->session->destroy();
redirect('/theloginpage');
}
}
Если вы используете jquery для javascript, вызов ajax может работать примерно так:
$('#login_form').submit(function(event) {
event.preventDefault();
$.ajax({
type:"POST",
data:$(this).serialize(),
dataType:"json",
url:"/login/json_login",
success: function(data) {
if(data['username'] != null) {
$(this).append('<p>You are now logged in</p>');
reload_table_data();
}
else if(data == flase){
$(this).append('<p>Fail whale, wrong username or password</p>');
}
}
});
}
Теперь при отображении данных проверьте, было ли установлено имя пользователя в сеансе. Также не забудьте создать метод выхода из системы, который уничтожит сеанс. Вы можете вернуть данные таблицы в виде фрагмента html и вставить их прямо в цикл DOM или json / xml.
Форма входа может отображаться в любом месте на странице, и существует множество библиотек для jquery, dojo, prototype и т. Д., Которые предоставляют диалоговое окно.