Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » JavaScript » Ejecutar código AJAX Responder al tema
Nuevo tema


Página 1 de 1  [ 1 mensaje ] 
 
Nota 2007-10-05 13:05 @586

Perlero Nuevo
Registrado: 2007-05-14 06:23 @307
Mensajes: 87
Ejecutar código AJAX
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:

Syntax: [ Download ] [ Hide ]
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();
?>


Syntax: [ Download ] [ Hide ]
  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:
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.


Responder al tema  [ 1 mensaje ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO