Hola tigrillo tu sabes que AJAX es ahora una técnica común al momento de crear un portal web, por eso te quiero mostrar como utilizar una de las tantas librerías AJAX para PHP que existen; Una de las tantas y mas fáciles de aprender es XAJAX, a continuación te mostrare como utilizarla:

  1. Descarga las librerías XAJAX 0.5 desde esta pagina http://xajaxproject.org/download.php.
  2. Una vez que descargaste copia el contenido a una carpeta dentro de tu sitio web(en este ejemplo yo copie a una carpeta llamada xajax).
  3. Luego empiezas a programar; En el ejemplo puedes observar que existen 3 archivos que tienen un mismo nombre en común es decir llevan la palabra “index”, esos archivos están relacionados entre si con la finalidad de poder ejecutar peticiones AJAX .

 
OJO: Hemos clasificado 3 archivos para una sola pagina con la finalidad de mantener un orden al momento de programar y siguiendo la estructura de los ejemplos de la documentación de XAJAX que se asemeja a la programación en capas.

  • index.php, contendrá la fachada y los controles de la pagina.
  • index.server.php, en este archivo se crean las funciones a utilizar
  • index.common.php, se encarga de registrar e invocar las funciones creadas en index.server.php.

y allí te va el código:

INDEX.PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php 
require_once('index.common.php'); 
//Haciendo referencia a las funciones registradas y que serán interpretadas como funciones javascript
 
/********HACIENDO CONSULTA A LA TABLA Ciclo***********/
$db=mysql_connect('localhost','root','');
mysql_select_db('db_alumnos',$db);
 
$rsCiclos=mysql_query('select codciclo,descripcion from ciclo');
/*****************************************************/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo XAJAX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php 
//indicamos al objeto xajax se encargue de generar el javascript de las funciones registradas por ejm: ListarCursosXCiclo
$xajax->printJavascript('xajax/'); 
?>
</head>
<body>
<form name="frmPrueba" id="frmPrueba" method="post">
	Ciclos : 
	<select name="cboCiclos" id="cboCiclos" onChange="xajax_ListarCursosXCiclo(this.value);">
		<option value="">--Seleccione--</option>
	<?php while($row=mysql_fetch_array($rsCiclos)){?>
		<option value="<?php echo $row['codciclo']?>"><?php echo $row['descripcion']?></option>
	<?php }?>
	</select>
	<br><br>
	<!--DIV donde se mostrara la respuesta AJAX-->
	<div id="divListado"></div>
</form>
</body>
</html>

INDEX.SERVER.PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php 
//importando nuestras las referencias XAJAX
require_once ("index.common.php");
 
//función que lista los Cursos segun el ciclo elegido
function ListarCursosXCiclo($codciclo){ 
	$db=mysql_connect('localhost','root','');
	mysql_select_db('db_alumnos',$db);
 
	$objResponse = new xajaxResponse();
	//instanciamos el objeto para la respuesta AJAX
	//ISO-8859-1 significa que los caracteres latinos como la ñ y los acentos seran tomados en cuenta
 
	$sql=sprintf('select codcur,nomcur,desccur from curso where codciclo=%d',$codciclo);
 
	$rsCursos=mysql_query($sql);
	$cantRegistros=mysql_num_rows($rsCursos);
 
	$tabla=''; //variable donde guardaremos la tabla HTML que luego se mostrara mediante AJAX
 
	if($cantRegistros>0){ // Si existen registros entonces armamos la cabecera de la tabla
		$tabla='<table width="50%" border="1">
				  <tr>
					<th scope="col">CODIGO</th>
					<th scope="col">CURSO</th>
					<th scope="col">DESCRIPCION</th>
				  </tr>';
	 	while($row=mysql_fetch_array($rsCursos)){ //recorriendo registro x registro y armando la tabla
		 $tabla.='<tr>
					<td>'.$row['codcur'].'</td>
					<td>'.$row['nomcur'].'</td>
					<td>'.$row['desccur'].'</td>
				  </tr>';
		}
		$tabla.='</table>';
	 }
	 //asignando el contenido de la varabiale $tabla al div que esta en index.php
	 //innerHTML reemplaza el contenido HTML por otro
	 $objResponse->assign("divListado","innerHTML",$tabla);
	 //mostramos un alert
	 $objResponse->alert("Este ciclo tiene ".$cantRegistros." cursos.");
	 return $objResponse; //retornamos la respuesta AJAX
}
 
$xajax->processRequest(); //procesando cualquier petición AJAX
?>

INDEX.COMMON.PHP

1
2
3
4
5
6
7
<?php
//importando las librerias XAJAX
require_once ("xajax/xajax_core/xajax.inc.php");
$xajax = new xajax("index.server.php");
//asociamos la función creada en index.server.php al objeto XAJAX
$xajax->registerFunction("ListarCursosXCiclo");
?>

Ejecutando el ejemplo te deberia mostrar algo asi:

utilizando_xajax_en_php
Si deseas puedes descargar el ejemplo desde aqui.

Como puedes ver es simple el manejo de XAJAX 0.5, este es un ejemplo básico pronto espero publicar algo mas complejo.

Mucha suerte !!