En esta oportunidad crearemos un aplicación web que nos permita insertar datos en la tabla empleados que usamos anteriormente. Bueno como siempre dijo: “pocas palabras, mas acción”.
Quizá te interese: CRUD, insertar, consultar, actualizar y eliminar, con PHP + MySQL + jQuery
Funciones en JavaScript
Bien, como ya tenemos la tabla empezaremos por definir las funciones en javascript, definiremos 3 funciones en un archivo llamado ajax.js:
- objetoAjax( ): Nos creara la instancia del objeto XMLHttpRequest dependiendo del navegador. Siempre haremos uso de ésta función.
- GrabarEmpleado( ): Esta función enviará mediante el método POST los datos al archivo registro.php que realizará la inserción a la base de datos.
- LimpiarCampos( ): Pues fácil limpiará los inputs después de enviar los datos, como para crear un efecto de que se han enviado datos.
ajax.js
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'); //valores de los inputs 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 medotod 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) } function LimpiarCampos(){ document.nuevo_empleado.nombres.value=""; document.nuevo_empleado.departamento.value=""; document.nuevo_empleado.sueldo.value=""; document.nuevo_empleado.nombres.focus(); }
Grabar los datos
Aquí crearemos un script PHP, al cual llamaremos registro.php que realizará tres funciones importantes:
- Conectarnos con la base de datos,
- Realizar la inserción de los datos a la tabla empleados, y
- Mediante un include llamar al archivo consulta.php que mostrará los registros incluyendo el nuevo ingresado.
A continuación mostramos el código de estos dos archivos: registro.php y consulta.php
registro.php
<?php //Configuracion de la conexion a base de datos $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "ribosomatic"; $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); //variables POST $nom=$_POST['nombres']; $dep=$_POST['departamento']; $suel=$_POST['sueldo']; //registra los datos del empleados $sql="INSERT INTO empleados (nombres, departamento, sueldo) VALUES ('$nom','$dep',$suel)"; mysql_query($sql,$con); include('consulta.php'); ?>
consulta.php
<?php //Configuracion de la conexion a base de datos $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "ribosomatic"; $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); //consulta todos los empleados $sql=mysql_query("SELECT * FROM empleados",$con); //muestra los datos consultados //haremos uso de tabla para tabular los resultados ?> <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($sql)){ echo " <tr>"; echo " <td>".$row['nombres']."</td>"; echo " <td>".$row['departamento']."</td>"; echo " <td>".$row['sueldo']."</td>"; echo " </tr>"; } ?> </table>
Formulario Registro de Empleado
Finalmente crearemos el formulario de registro del empleado. Llamaremos a este archivo empleados_registro.php. Sera .php pues haremos uso de un include para llamar al archivo consulta.php que mostrará todos los registros de la tabla empleado.
empleados_registro.php
<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>
Bueno espero que estos scripts les sirvan de algo a alguien por allí. Consultas o dudas en los comentarios. Pueden descargar el código.