Xajax y php
Hola, tengo una duda con respecto a un código que tomé del siguiente enlace http://developer.swekee.com/2008/09/04/utilizando-xajax-05-en-php/ y lo adapte para realizar consultas en una base de datos postgres
estos son los archivos:
index.php, contendrá la fachada y los controles de la página.
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.
Cuando cargo la página me muestra el combo con los valores de la base de datos, pero al seleccionar alguno debería mostrarme una tabla con el resultado de la consulta que especifico en index.server.php. Y no hace nada
Bueno el código del archivo index es:
<?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 Personal***********/
$db = pg_connect("host=127.0.0.1 dbname=SIIO user=postgres
password=abc123") or
die ("Fallo en el establecimiento de la conexión");
$result = pg_query ($db, "select codigo_actividad, descripcion from actividad")
or die("Error en la consulta SQL");
/*****************************************************/
?>
<!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">
Actividad:
<select name="cboCiclos" id="cboCiclos" onChange="xajax_ListarCursosXCiclo(this.value);">
<option value="">--Seleccione--</option>
<?php while($row=pg_fetch_array($result)){?>
<option value="<?php echo $row['codigo_actividad']?>"><?php echo $row['codigo_actividad']?></option>
<?php }?>
</select>
<!--DIV donde se mostrara la respuesta AJAX-->
<div id="divListado"></div>
</form>
</body>
</html>
el codigo del archivo index.server.php:
<?php
//importando nuestras las referencias XAJAX
require_once ("index.common.php");
//función que lista los Cursos segun el ciclo elegido
function ListarCursosXCiclo($codigo_actividad){
$db = pg_connect("host=127.0.0.1 dbname=SIIO user=postgres password=abc123") or
die ("Fallo en el establecimiento de la conexión");
$objResponse = new xajaxResponse();
//instanciamos el objeto para la respuesta AJAX
//ISO-8859-1 significa que los caracteres latinos como la ñ y los acentos serán tomados en cuenta
//$sql=sprintf('select codigo_personal,descripcion,estado from personal where codigo_actividad=%d',$codigo_actividad);
$sql=select codigo_personal,descripcion,estado from personal where codigo_actividad=$codigo_actividad;
$rspersonal=pg_query ($db, $sql);
$cantRegistros=pg_numrows($rspersonal);
$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 PERSONAL</th>
<th scope="col">DESCRIPCIÓN</th>
<th scope="col">ESTADO</th>
</tr>
';
while($row=pg_fetch_array($rspersonal,null, PGSQL_ASSOC)){ //recorriendo registro x registro y armando la tabla
$tabla.='
<tr>
<td>'.$row['codigo_personal'].'</td>
<td>'.$row['descripcion'].'</td>
<td>'.$row['estado'].'</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
return $objResponse; //retornamos la respuesta AJAX
}
$xajax->processRequest(); //procesando cualquier petición AJAX
?>
y el codigo de index.common.php
<?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");
?>
Muchas gracias de antemano.
estos son los archivos:
index.php, contendrá la fachada y los controles de la página.
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.
Cuando cargo la página me muestra el combo con los valores de la base de datos, pero al seleccionar alguno debería mostrarme una tabla con el resultado de la consulta que especifico en index.server.php. Y no hace nada
Bueno el código del archivo index es:
<?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 Personal***********/
$db = pg_connect("host=127.0.0.1 dbname=SIIO user=postgres
password=abc123") or
die ("Fallo en el establecimiento de la conexión");
$result = pg_query ($db, "select codigo_actividad, descripcion from actividad")
or die("Error en la consulta SQL");
/*****************************************************/
?>
<!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">
Actividad:
<select name="cboCiclos" id="cboCiclos" onChange="xajax_ListarCursosXCiclo(this.value);">
<option value="">--Seleccione--</option>
<?php while($row=pg_fetch_array($result)){?>
<option value="<?php echo $row['codigo_actividad']?>"><?php echo $row['codigo_actividad']?></option>
<?php }?>
</select>
<!--DIV donde se mostrara la respuesta AJAX-->
<div id="divListado"></div>
</form>
</body>
</html>
el codigo del archivo index.server.php:
<?php
//importando nuestras las referencias XAJAX
require_once ("index.common.php");
//función que lista los Cursos segun el ciclo elegido
function ListarCursosXCiclo($codigo_actividad){
$db = pg_connect("host=127.0.0.1 dbname=SIIO user=postgres password=abc123") or
die ("Fallo en el establecimiento de la conexión");
$objResponse = new xajaxResponse();
//instanciamos el objeto para la respuesta AJAX
//ISO-8859-1 significa que los caracteres latinos como la ñ y los acentos serán tomados en cuenta
//$sql=sprintf('select codigo_personal,descripcion,estado from personal where codigo_actividad=%d',$codigo_actividad);
$sql=select codigo_personal,descripcion,estado from personal where codigo_actividad=$codigo_actividad;
$rspersonal=pg_query ($db, $sql);
$cantRegistros=pg_numrows($rspersonal);
$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 PERSONAL</th>
<th scope="col">DESCRIPCIÓN</th>
<th scope="col">ESTADO</th>
</tr>
';
while($row=pg_fetch_array($rspersonal,null, PGSQL_ASSOC)){ //recorriendo registro x registro y armando la tabla
$tabla.='
<tr>
<td>'.$row['codigo_personal'].'</td>
<td>'.$row['descripcion'].'</td>
<td>'.$row['estado'].'</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
return $objResponse; //retornamos la respuesta AJAX
}
$xajax->processRequest(); //procesando cualquier petición AJAX
?>
y el codigo de index.common.php
<?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");
?>
Muchas gracias de antemano.
Respuesta de oyepez003
1