Есть несколько способов ответить на ваш вопрос.Надеемся, что это решение даст некоторые идеи о том, как этого добиться.
В приведенном ниже решении используется диалоговое окно jquery ui для отображения модальных и jquery .ajax для обработки отправки формы входа в систему.
Условно поместите этот код внизу страницы.перед тегом </body>
, если пользователь не вошел в систему.
<?php if($this->auth->tank_auth->is_logged_in()){ ?>
<div id="dialog-wrap" class="modal" >
<?php echo $this->load->view('login_form'); ?>
</div>
<script>
$('#dialog-wrap').modal({
modal: true,
autoOpen: true,
});
$('#login-form').submit(function(){
//use .ajax to submit login form and check credentials.
$.ajax({
type: 'POST',
url: <?php echo base_url(); ?>"login.php",
data: "username="+$('username').val()+'&password='+$('password').val(),
dataType: 'json',
success: function(returnData){.
if(returnData.status){
//close modal box
}else {
//display message that login failed.
}
}
});
});
</script>
?>
Ваш контроллер входа ajax
function login(){
//Use tank auth to validate login information.
if(authentication is successful) {
$return_data = array(
'status' => true,
'msg' => 'Login Successful'
);
}else {
$return_data = array(
'status' => false,
'msg' => 'Login failed'
);
}
//Use echo instead of return when you are sending data back to an jquery ajax function.
echo json_encode($data);
}
Если вы сделаете это таким образом, вам не придется полагатьсяна перенаправлениях codeigniter все будет обрабатываться через ajax.
Надеюсь, это даст вам представление о том, как с этим справиться.