No sé por qué es, estoy cansado de modificar cosas pero no sé qué es lo que falla porque yo le doy al select y no hace nada, no se carga el 2 select, el código es:
Código:
<? //incluímos la clase ajax require ('../xajax_core/xajax.inc.php'); //instanciamos el objeto de la clase xajax $xajax = new xajax(); $xajax->setCharEncoding('ISO-8859-1'); //$xajax->configure('javascript URI', '../'); //$xajax->decodeUTF8InputOn(); function select_combinado($id_provincia){ //función para crear el select combinado //debe extraer las opciones de un select a partir de un parámetro //generamos unos arrays con distintas poblaciones de varias provincias //estos valores en un caso práctico seguramente se extraerán de base de datos //no habría que cargar todos en memoria, sólo hacer el select de las poblaciones de la provincia deseada $madrid = array("Madrid", "Las Rozas", "Móstoles", "San Sebastián de los Reyes"); $valencia = array("Valencia", "La Eliana", "Paterna", "Cullera"); $barcelona = array("Barcelona", "Badalona"); $leon = array ("León", "Astorga", "Villamejil"); $poblaciones = array($madrid, $valencia, $barcelona, $leon); //creo las distintas opciones del select $nuevo_select = "<select name='poblaciones'>"; for ($i=0; $i<count($poblaciones[$id_provincia]); $i++){ //for ($i=0; $i<2; $i++){ $nuevo_select .= '<option value="' . $i . '">' . $poblaciones[$id_provincia][$i] . '</option>'; } $nuevo_select .= "</select>"; return $nuevo_select; } function generar_select($cod_provincia){ //instanciamos el objeto para generar la respuesta con ajax $respuesta = new xajaxResponse('ISO-8859-1'); if ($cod_provincia==999){ //escribimos el select de poblaciones vacío $nuevo_select = '<select name="poblaciones"> <option value=0>Elegir provincia</option> </select> '; }else{ $nuevo_select = select_combinado($cod_provincia); } //escribimos en la capa con id="seleccombinado" $respuesta->addAssign("seleccombinado","innerHTML",$nuevo_select); //tenemos que devolver la instanciación del objeto xajaxResponse return $respuesta; } //asociamos la función creada anteriormente al objeto xajax $xajax->registerFunction("generar_select"); //El objeto xajax tiene que procesar cualquier petición $xajax->processRequest(); ?> <html> <head> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>Validar usuario en Ajax</title> <? //En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario // $xajax->printJavascript("xajax/"); $xajax->printJavascript("../"); // $xajax->printJavascript(); ?> </head> <body> <form name="formulario"> Provincia: <br> <select name="provincia" onChange="xajax_generar_select(document.formulario.provincia.options[document.formulario.provincia.selectedIndex].value)"> <option value="999">Selecciona provincia</option> <option value=0>Madrid</option> <option value=1>Valencia</option> <option value=2>Barcelona</option> <option value=3>León</option> </select> <br> <br> Población: <div id="seleccombinado"> <select name="poblaciones"> <option value=0>Elegir provincia</option> </select> </div> </form> </body> </html>
Y a mí me da que el error puede estar en la línea donde dice $xajax->printJavascript("../"); aunque ya he probado varias alternativas y ninguna me funciona. La ruta relativa de los scripts creo q está bien, pues mi arbol de carpetas es:
Server-web-XAJAX-y aquí tengo descomprimido todo el contenido de la carpeta xajax
Dentro de XAJAX tengo lo siguiente:
XAJAX-examples-select.php (este es el script que no me funciona, contiene el código anterior)
XAJAX-xajax_controls
XAJAX-xajax_core
XAJAX-xajax_js
XAJAX-xajax_plugins
Dentro de aquí, el script que estoy ejecutando lo tengo dentro de la carpeta examples, que es donde está el helloWorld que me funciona, y he puesto las rutas relativas igual, así que deberían estar bien.
SI me pudiérais echar una mano, gracias