• Publicidad

Ejecutar código AJAX

Discute todo acerca de JavaScript así como DHTML o la tecnología AJAX.

Ejecutar código AJAX

Notapor marcosss » 2007-10-05 13:05 @586

Hola, estoy empezando en AJAX y estoy ejecutando ejemplos hechos en Internet, y estoy ejecutando un ejemplo explicado en la dirección: http://www.desarrolloweb.com/articulos/ ... x-php.html, pero no me funciona.

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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
<?
//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();
?>
Coloreado en 0.021 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
  1. <html> 
  2. <head> 
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4. <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> 
  5. <title>Validar usuario en Ajax</title> 
  6. <? 
  7. //En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario 
  8. // $xajax->printJavascript("xajax/"); 
  9. $xajax->printJavascript("../"); 
  10.  
  11. // $xajax->printJavascript(); 
  12.  
  13. ?> 
  14. </head> 
  15.  
  16. <body> 
  17.  
  18. <form name="formulario"> 
  19. Provincia: 
  20. <br> 
  21. <select name="provincia" onChange="xajax_generar_select(document.formulario.provincia.options[document.formulario.provincia.selectedIndex].value)"> 
  22. <option value="999">Selecciona provincia</option> 
  23. <option value=0>Madrid</option> 
  24. <option value=1>Valencia</option> 
  25. <option value=2>Barcelona</option> 
  26. <option value=3>León</option> 
  27. </select> 
  28. <br> 
  29. <br> 
  30. Población: <div id="seleccombinado"> 
  31. <select name="poblaciones"> 
  32. <option value=0>Elegir provincia</option> 
  33. </select> 
  34. </div> 
  35. </form> 
  36. </body> 
  37. </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 que está bien, pues mi árbol de carpetas es:

Código: Seleccionar todo
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 pudierais echar una mano, gracias.
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Publicidad

Volver a JavaScript

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados