AJAX, PHP, MySQL - Consulta de registros

Realizaremos un sencillo ejemplo de como recuperar registros de una tabla con AJAX.

Este ejemplo lo he probado en IE, Firefox, Opera y Netscape sin darme errores.

Es un ejemplo sencillo si estamos familiarizados con PHP y MySQL.Aún así dare algunas explicaciones generales sobre el código.

Creacion de la tabla

Entonces empezemos creando un tabla pequeña llamada empleados, no tendrá mas que 5 campos: idempleado, nombres, departamento y sueldo; además insertaremos algunos datos.

CREATE TABLE empleados (   
		idempleado int NOT NULL auto_increment,
		nombres varchar(32) NOT NULL,
		departamento varchar(40)NOT NULL,
		sueldo double,
		KEY id(idempleado) ) 
TYPE=MyISAM;    


INSERT INTO empleados VALUES (1, 'Juan Perez', 'Informatica',500.00);
INSERT INTO empleados VALUES (2, 'Laura Morales', 'Contabilidad',550.00);
INSERT INTO empleados VALUES (3, 'Luis Gutierrez', 'Administracion',850.00);
INSERT INTO empleados VALUES (4, 'Pedro Solar', 'Informatica',500.00);
INSERT INTO empleados VALUES (5, 'David Vilchez', 'Contabilidad',550.00);

Creamos las funciones en javascript

Ahora escribiremos 2 funciones, en la primera ( objetoAjax ) tiene como objetivo elegir el objeto XMLHttpRequest dependiendo del navegador, y la segunda función ( MostrarConsulta(parametro) ) tendrá como objetivo pedir los datos y mostrarlos en una capa (<div>) que especificaremos. Estas funciones lo podemos incluir en un archivo javascript (.js) al cual llamaremos ajax.js

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 MostrarConsulta(datos){
	divResultado = document.getElementById('resultado');
	ajax=objetoAjax();
	ajax.open("GET", datos);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = ajax.responseText
		}
	}
	ajax.send(null)
}

Pedir los datos con PHP

En esta parte escribiremos un script en PHP para realizar una consulta de todos los registros de la tabla empleados en la base de datos.

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
echo "</p>Nombres - Departamento - Sueldo</p> n";
while($row = mysql_fetch_array($sql)){
	echo "<p>".$row['nombres']." - ".$row['departamento']." - ".$row['sueldo']."</p> n";
}
?>

Formulario de consulta

Finalmente creamos un archivo html que contendrá un Form y un Button el cual realizará la consulta.

consulta_empleados.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Consulta Registro con AJAX</title>
<!-- referenciamos al archivo ajax.js donde se encuentra nuestra funcion objetoAjax-->
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
</head>
<body>
<p>Consultar registros con ajax</p>"</p>"<p><!-- En "onsubmit" escribimos la función 'MostrarConsulta' que creamos en javascript, con su parametro que es el archivo que vamos a mostrar, en este caso 'consulta.php'-->
<form name="consulta" action="" onsubmit="MostrarConsulta('consulta.php'); return false"> <label>
<input type="submit" value="Consultar" />
</label>
</form>
<div id="resultado"></div>
</body>
</html>

En resumen

Para consultar los datos de una tabla hemos realizado lo siguiente:

  • Una función para crear el objeto XMLHttpRequest dependiendo del navegador.
  • Una función que realizará la petición de datos e indicará donde se mostrarán estos.
  • Una script en PHP que consulta los datos y los muestra.
  • Y finalmente el formulario de consulta.

Como podrán apreciar el código es realmente sencillo de entender, aún así daré mas detalles si preguntan. Pueden descargar el archivo si desean. Hasta otra oportunidad.

Compartir/Guardar artículo

Comentarios

  1. avatar Juan Vega 2008-10-24 01:08:31 62 Mae me podrias ayudar con el acceso a datos, por favor. No se como hizo con la tabla...
  2. avatar gaston 2008-10-17 22:34:47 61 Gracias hermano me sirvio muchisimo
  3. avatar fnovoa 2008-10-13 10:55:10 60 Qué pasa con los tildes y ñ, en la consulta.. funciona todo bien, pero al poner un tilde como ejemplo en informática, ajax lo devuelve con caracteres raros... problemas utf-8?? ..
    me gustaria mucho si pudieras publicar algo con respeto a este problema o si ya existe agradeceria que me informaran. slds!!!
  4. avatar Yubert 2008-10-04 11:24:32 59 Saludos, hermano el codigo trabaja a la perfección, pero tengo hay un detalle que hasta ahora no le he conseguido solución en ninguno de los tutoriales y demás ayudas, y es que el ajax toma el valor del servidor, lo muestra en la capa mediante el script, pero si se le agrega otro valor a la base de datos y se actualiza, o se vuelve a hacer llamado al servidor no se muestra, aparece los valores anteriores, es como si el servidor creara un resultado php y luego no lo creara de no ser que la ventana se cierre y se vuelva a hacer llamado, gracias por su atención, cualquier comentario por favor com. jorlun@hotmail.com
  5. avatar gerardo 2008-09-09 18:42:36 58 Definitivamente excelente.
    ahora lo podre usar en mi pagina.
    Una consulta se podria tambien usar esto con una lista dropdown que al escoger un item se pueda cambiar refrescar la pagina con dicha opcion?
  6. avatar Eduardo 2008-08-07 06:05:35 57 Excelente!
  7. avatar Diseño Wen Peru 2008-07-27 20:11:35 56 que buen aporte
    ---------------------------
  8. avatar carlos 2008-07-27 17:59:47 55 gracias por tu respuesta jesusvld soy principante en la barra de abajo donde se ve cuando se esta cargando la pagina aparece un listo con errores y no me carga nada de la consulta ps me deberia mostrar los empleados y no muestra nada

    gracias por sus respuestas
  9. avatar jesusvld 2008-07-24 06:58:59 54 Hola Carlos:
    Puedes detallar mejor el problema. Te sale un error en pantalla?. Te recomiendo Firebug para Firefox para detectar cualquier inconveniente en tus aplicaciones web.
  10. avatar carlos 2008-07-23 18:59:19 53 a la hora de consultar en el formulario html no me muestra los registros del atabla por q sera?
    ete es en ejemplo de consultar registros con ajax, mysql y php
    gracias por sus atentas respuestas

Dejar un comentario


Navegación

Categorias

Archivos