Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Material a utilizar
Codeigniter
http://www.codeigniter.com/download
Bootstrap
http://getbootstrap.com/getting-started/#download
jquery
http://code.jquery.com/jquery-1.11.3.min.js
En nuestro gestor de base de datos, creamos una base de datos llamada proyectocrud.
config.php
$config['encryption_key'] = 'REALLY_LONG_NUMBER';
Autoload.php
Database.php
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'proyectocrud';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Abrimos nuestro navegador e ingresamos a la siguiente dirección:
Creación de la vista
C:\xampp\htdocs\proyecto_crud\application\views, creamos las siguientes carpetas para
dividir nuestro proyecto.
Creamos el archivo footer_login.php y lo guardamos en views/footer.
Su código:
<script>
/**
*/
$('.notify').html( message );
$( "#dialogo" ).dialog({
autoOpen : true,
width : 400,
title : title,
"position": ['middle',30],
modal : true,
resizable : false,
buttons : {
"Cerrar": function() {
},
open: function(){},
close: function(){}
});
};
/**
* Muestra una alerta
*/
$('#msj').empty().html('<div
class="alert alert-warning">'+ msj +'</div>');
</script>
<script src="set/js/jquery-1.11.3.min.js"></script>
<script src="set/js/bootstrap.min.js"></script>
<script src="set/js/jquery-ui-1.10.4.custom.js"></script>
<script src="set/js/jquery-ui-1.10.4.custom.min.js"></script>
</body>
</html>
En la carpeta views/header, creamos el archivo header_login.php
Su código:
<!DOCTYPE html>
<html>
<head>
<title>Crud</title>
<!--
Estilo
-->
<!-- -->
</head>
<body>
En la carpeta views/form, creamos el archivo login_view.php
Su código:
<div class="container">
<div class="tab-content">
</div>
</div>
</div>
<script>
function loguear(){
$.ajax({
url : 'control_usuario/loguear',
type : 'post',
dataType : 'json',
data : $('#my_form').serialize(),
beforeSend : function(){
},
success : function(data){
alerta();
if( data.type==false){
}else{
},
error : function(){
}
});
};
</script>
<div id="top">
<div class="navbar-header">
</div>
<div>
<li class="dropdown">
</a>
<ul class="dropdown-menu">
</li>
</ul>
</div>
</nav>
</div>
<br>
<br>
<br>
<br>
<br>
<br>
<div class="container-fluid">
<thead>
<tr>
<th>Usuario</th>
<th></th>
</tr>
</thead>
<tbody id="lista"></tbody>
</table>
<table class="completa">
<tr>
<td width="30%"><label
for="usuario">Usuario: *</label></td>
<td width="70%">
<input type="text"
class="form-control" id="usuario" name="usuario">
</td>
</tr>
<tr>
<td><label for="clave">Clave:
*</label></td>
<td>
<input type="password"
class="form-control" id="clave" name="clave">
</td>
</tr>
<tr>
<td><label for="clave_">Confirmar
clave: *</label></td>
<td>
<input type="password"
class="form-control" id="clave_" name="clave_">
</td>
</tr>
</table>
</div>
<script>
function traer_lista(){
$.ajax({
url : 'usuarios/traer_lista',
type : 'post',
dataType : 'json',
beforeSend : function(){
success : function(data){
alerta(); $('#lista').empty();
if( data.type==false){
}else{
var fila='';
$.each(data.lista, function( k,
v ){
fila ='<tr
tabindex="2014'+v.id_usuario+'" >';
fila
+='<td>'+v.usuario+'</td>';
fila +='<td>';
fila += '<i
class="glyphicon glyphicon-pencil" onclick="prepara_form(\'Editar\', '+v.id_usuario+')"
title="EDITAR"></i>';
fila +='<i
class="glyphicon glyphicon-remove" onclick="confirm_delete( '+v.id_usuario+' )"
title="ELIMINAR"></i>';
fila +='</td>';
fila +='</tr>';
$('#lista').append(fila);
});
},
error : function(){
alerta(); dialogo( 'Error', 'Error en la
función usuarios/traer_lista.' );
});
};
$('#my_form')[0].reset();
$('#id_usuario').val( id_usuario );
if( accion=='Editar' ){
$.ajax({
url : 'usuarios/traer_usuario
',
type : 'post',
dataType : 'json',
beforeSend : function(){
},
success : function(data){
alerta();
if( data.type==false ){
dialogo('Notificación',
data.message);
}else{
var
v=data.usuario[0];
$('#usuario').val(
v.usuario );
load_form( accion );
},
error : function(){
});
}else{
load_form( accion );
};// -----------------------
$( "#div_form" ).dialog({
autoOpen : true,
width : 600,
"position": ['middle',70],
modal : true,
resizable : false,
buttons : {
"Cancelar": function() {
},
"Guardar": function(){
save_form();
},
open: function(){},
close: function(){}
});
};// ---------------
function save_form(){
$.ajax({
url : 'usuarios/save_form',
type : 'post',
dataType : 'json',
data : $('#my_form').serialize(),
beforeSend : function(){
},
success : function(data){
$('#msj_form').empty();
if( data.type==false ){
dialogo( 'Notificación',
data.message );
}else{
$('#div_form').dialog('close');
traer_lista();
setTimeout(function(){
alerta(data.message,
true);
$('tr[tabindex="2014'+data.id_usuario+'"]').focus();
}, 1000);
},
error : function(){
$('#msj_form').empty(); dialogo(
'Error', 'Error en la función usuarios/save_form.' );
});
};
$( "#dialogo" ).dialog({
autoOpen : true,
width : 400,
title : 'Confirmación',
"position": ['middle',30],
modal : true,
resizable : false,
buttons : {
"Cancelar": function() {
},
"Eliminar": function(){
delete_( idusuarios );
},
open: function(){},
close: function(){}
});
};// --------------------------
$.ajax({
url : 'usuarios/delete_',
type : 'post',
dataType : 'json',
beforeSend : function(){
},
alerta();
if( data.type==false ){
dialogo( 'Notificación',
data.message );
}else{
$( "#dialogo" ).dialog(
"close" );
setTimeout(function(){
alerta( data.message, true ); }, 1000);
traer_lista();
},
error : function(){
});
</script>
<style>
</style>
$query=$this->db->get('usuario');
return($query->num_rows()>0)?$query-
>result_array():false;
$this->db->insert('usuario', $post);
return($this->db->affected_rows()>0)?$this->db-
>insert_id():false;
$this->db->where('id_usuario', $id_usuario);
$this->db->where('id_usuario', $id_usuario);
$this->db->delete('usuario');
return($this->db->affected_rows()>0)?true:false;
}
Código para el controlador controllers/control_usuario.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function __construct()
parent::__construct();
session_start();
$this->load->helper('url');
$this->load->model('model_acceso');
$data['home'] = strtolower(__CLASS__).'/';
$this->load->vars($data);
$this->load->view('header/header_login');
$this->load->view('frm/login_view');
$this->load->view('footer/footer_login');
}
function loguear(){
$data=array();
$this->form_validation->set_rules('usuario', 'usuario',
'trim|required|xss_clean');
$this->form_validation->set_rules('clave', 'clave',
'trim|required|xss_clean|md5');
$data['type'] =false;
$data['message']=validation_errors();
}else{
$usuario=$this->model_acceso->comprobar(
$_POST );
if( $usuario==false ){
$data['type'] =false;
$data['message']='Acceso denegado.';
}else{
$data['type'] =true;
$data['message']='Acceso concedido.';
$_SESSION['my_usuario']=$usuario;
$this->output->set_content_type('application/json')-
>set_output( json_encode( $data ) );
function salir(){
unset($_SESSION['my_usuario']);
redirect( '../control_usuario', 'refresh' );
?>
Y modificamos las siguientes líneas, para que lo primero que nos cargue nuestro proyecto
sea el controlador control_usuario, que carga la vista del login.
config/routes.php
$route['default_controller'] = "control_usuario";
$route['404_override'] = '';