Hola a todos, mi nombre es Leandro, estoy haciendo una practica para mi, para agarrarle la mano a xajax (uso la version 0.2.4), y se me ocurrio hacer un select combiando, y no hay manera que me actualice el segundo select, les dejo el codigo y la estructura de la tablita de prubas que use, para ver si me pueden orientar en que parte estoy haciendo mal las cosas.
Desde ya muchas gracias.
Leandro
Hola estoy haciendo pruebas con xajax y php para hacer un select combinado.
Estuve leyendo el manual que hay aca, y uno de los codigos que alguien compartio en el mismo.
Pero hay algo que hago mal o se me pasó, porque una vezque elijo la provincia no logro que me muestre la localidad.
Alguien me puede orientar?
Aqui les dejo el codigo fuente y la escrutura de la tabla:
(Estoy usando la version 0.2.4 de xajax)
<?php
require_once("xajax/xajax.inc.php");
//Instancio el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
//************************************************** *******
// Cargo el combo con las provincias LISTO
//************************************************** *******
function provincia()
{
include 'conexion.php';
conectar();
$consulta = mysql_query("SELECT DISTINCT provincia FROM localidad");
desconectar();
echo "<select name='provincia' onChange='xajax_generar_select(document.formulario .provincia.options[document.formulario.provincia.selectedIndex].value)'>";
echo "<option value='0'>Seleccione provincia</option>";
while($registro = mysql_fetch_array($consulta))
{
echo "<option value='999'>$registro[provincia]</option>";
}
echo "</select>";
}
//************************************************** *******
// Cargo el combo con las provincias LISTO
//************************************************** *******
//************************************************** ***********
// Comienzo del laburito con ajax
//************************************************** ***********
function select_combinado($provincia)
{
include 'conexion.php';
conectar();
$consulta_loc = mysql_query("SELECT localidad FROM localidad WHERE provincia='$provincia'");
desconectar();
$nuevo_select = "<select name='localidad'>";
$nuevo_select .= "<option value='0'>Elegir provincia</option>";
while($registro_loc = mysql_fetch_array($consulta_loc))
{
$nuevo_select .= "<option value='0'>".$registro_loc[1]."</option>";
}
$nuevo_select .= "</select>";
return $nuevo_select;
}
function generar_select($idProvincia)
{
$respuesta = new xajaxResponse();
if ($idProvincia==0)
{
$nuevo_select = '<select name="localidad">
<option value="0">Elige Localidad</option>
</select>';
}
else
{
$nuevo_select = select_combinado($idProvincia);
}
$respuesta->addAssign("selec","innerHTML",$nuevo_select);
return $respuesta;
}
$xajax->registerFunction("generar_select");
$xajax->processRequests();
//************************************************** ***********
// Fin del laburito con ajax
//************************************************** ***********
?>
<html>
<head>
<title>Selects combinados</title>
<?php $xajax->printJavascript("xajax/"); ?>
</head>
<body>
<form name="formulario">
Provincia:
<br />
<?php provincia(); ?>
<br />
<br />
Localidad:
<div id="selec">
<select name="localidad">
<option value="0">Elegir provincia</option>
</select>
</div>
</form>
</body>
</html>
la estructura de la tabla esta dada por:
idProvincia (int5)
provincia (varchar30)
localidad (varchar30)