Foros del Web » Programando para Internet » PHP »

php + xajax

Estas en el tema de php + xajax en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/08/2010, 18:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
php + xajax

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)

Etiquetas: xajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:52.