Tenemos la tabla Empleado. También disponemos de la Clase DBManager, esta Clase la vamos a usar
para verificar y realizar la conexión a la Base de Datos.
para verificar y realizar la conexión a la Base de Datos.
La Clase cEmpleado se encuentra en el archivo cEmpleado.php, a esta Clase vamos agregarle un método para que guarde un nuevo registro en la tabla Empleado. A este método lo llamaremos crear() el cual tendrá como parámetros de entrada los datos que se requiere del empleado: Nombre, Departamento, Sueldo. Hay que tener en cuenta que el campo idempleado incrementa automáticamente, por ello no lo incluimos dentro de los parámetros.
Veamos como quedaría este método en el archivo cEmpleado.php:
<?php include_once("DBManager.php"); //implementamos la clase empleado class cEmpleado{ //constructor function cEmpleado(){ } // consulta los empledos de la BD function consultar(){ //creamos el objeto $con a partir de la clase DBManager $con = new DBManager; //usamos el metodo conectar para realizar la conexion if($con->conectar()==true){ $query = "select * from empleados order by nombres"; $result = @mysql_query($query); if (!$result) return false; else return $result; } } //* inserta un nuevo empleado en la base de datos *// function crear($nom,$dep,$suel){ $con = new DBManager; if($con->conectar()==true){ $query = "INSERT INTO empleados (nombres, departamento, sueldo) VALUES ('$nom','$dep',$suel)"; $result = mysql_query($query); if (!$result) return false; else return true; } } } ?>
Ya tenemos la Clase cEmpleado con su nuevo método listo para ser usado en cualquier momento. Ahora continuando con el desarrollo vamos a listar todos los empleados de la tabla Empleados. A este archivo lo llamamos consulta.php y va usar las clase cEmpleado. Esta vez vamos a listar los resultados en una tabla HTML. Veamos:
<?php include_once("cEmpleado.php"); //creamos el objeto $objempleados de la clase cEmpleado $objempleados=new cEmpleado; //la variable $lista consulta todos los empleados $lista= $objempleados->consultar(); ?> <table style="border:1px solid #FF0000; color:#000099;width:400px;"> <tr style="background:#99CCCC;"> <td>Nombres</td> <td>Departamento</td> <td>Sueldo</td> </tr> <?php while($row = mysql_fetch_array($lista)){ echo "<tr>"; echo "<td>".$row['nombres']."</td>"; echo "<td>".$row['departamento']."</td>"; echo "<td>".$row['sueldo']."</td>"; echo "</tr>"; } ?> </table>
Veamos ahora, el proceso de guardado o inserción de los datos en la tabla Empleado, vamos a llamar a este archivo registro.php y notemos que se crea un objeto de la clase cEmpleado y usamos el método crear() donde especificamos los parámetros requeridos. Al final hace un include al archivo consulta.php para listar los nuevos datos.
<?php include_once("cEmpleado.php"); //variables POST $nom=$_POST['nombres']; $dep=$_POST['departamento']; $suel=$_POST['sueldo']; sleep(2); //creamos el objeto $objempleados //y usamos su método crear $objempleados=new cEmpleado; if ($objempleados->crear($nom,$dep,$suel)==true){ echo "Registro grabado correctamente"; }else{ echo "Error de grabacion"; } include('consulta.php'); ?>
Ahora las funciones en JavaScript, creamos 3 funciones: 1) para crear el objeto XMLHttpRequest, 2) para enviar y recibir los datos del empleado para que sean guardados en la tabla Empleado y 3) para limpiar las cajas de texto del formulario. El archivo ajax.js va así:
function objetoAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function enviarDatosEmpleado(){ //donde se mostrará lo resultados divResultado = document.getElementById('resultado'); divResultado.innerHTML= '<img src="anim.gif">'; //valores de las cajas de texto nom=document.nuevo_empleado.nombres.value; dep=document.nuevo_empleado.departamento.value; suel=document.nuevo_empleado.sueldo.value; //instanciamos el objetoAjax ajax=objetoAjax(); //uso del medoto POST //archivo que realizará la operacion //registro.php ajax.open("POST", "registro.php",true); ajax.onreadystatechange=function() { if (ajax.readyState==4) { //mostrar resultados en esta capa divResultado.innerHTML = ajax.responseText //llamar a funcion para limpiar los inputs LimpiarCampos(); } } ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //enviando los valores ajax.send("nombres="+nom+"&departamento="+dep+"&sueldo="+suel) } //limpiando las cajas de texto function LimpiarCampos(){ document.nuevo_empleado.nombres.value=""; document.nuevo_empleado.departamento.value=""; document.nuevo_empleado.sueldo.value=""; document.nuevo_empleado.nombres.focus(); }
Finalmente, el archivo index.php que contendrá un formulario con caja de texto para escribir los datos del empleado y una lista de los empleados registrado. Una vez que pulsamos el botón Grabar, los datos se guardarán en la tabla Empleado y la lista se actualizará automaticamente. Dentro de las etiquetas <head></head> hacemos referencia al archivo ajax.js, en el atributo onsubmit de la etiqueta <form> especificamos la función enviarDatosEmpleado() y en la dentro de las etiquetas <div id="resultado"></div> en la parte final hacemos un include al archivo consulta.php. El archivo quedaría así:
<html> <head> <title>Registro con AJAX</title> <script language="JavaScript" type="text/javascript" src="ajax.js"></script> </head> <body> <form name="nuevo_empleado" action="" onSubmit="enviarDatosEmpleado(); return false"> <h2>Nuevo empleado</h2> <p>Nombres <label> <input name="nombres" type="text" /> </label> </p> <p>Departamento <label> <select name="departamento"> <option value="Informatica">Informatica</option> <option value="Contabilidad">Contabilidad</option> <option value="Administracion">Administracion</option> <option value="Logistica">Logistica</option> </select> </label> </p> <p>Sueldo <strong>S/.</strong> <label> <input name="sueldo" type="text" /> </label> </p> <p> <label> <input type="submit" name="Submit" value="Grabar" /> </label> </p> </form> <div id="resultado"><?php include('consulta.php');?></div> </body> </html>
Se habrá dado cuenta que hemos incluido un método a la clase cEmpleado y ello sin alterar el método anterior. Incluso hemos usado el método consultar() que ya estaba allí. Esto nos hace ver que si programamos Orientando a Objetos, nuestro código se hace flexible y reutilizable.
No hay comentarios:
Publicar un comentario