elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Mensaje de carga usando xajax [SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mensaje de carga usando xajax [SOLUCIONADO]  (Leído 6,040 veces)
novalida

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Mensaje de carga usando xajax [SOLUCIONADO]
« en: 27 Agosto 2010, 19:37 pm »

Hola!!! :)
Estoy aprendiendo a utilizar este framework para php para mostrar un mensaje de carga mientras se espera al respuesta del servidor al hacerle una solicitud.
Tengo éste código:

Código:
<?
require ('xajax/xajax.inc.php');

function funcion_lenta()
{
   sleep(3);
  
   $objResponse = new xajaxResponse();
   $objResponse->addAssign("capa_actualiza","innerHTML","Finalizado");
  
   return $objResponse;
}

$xajax = new xajax();
$xajax->registerFunction('funcion_lenta');
$xajax->processRequests();

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
   <title>Ejemplo de mostrar un aviso de carga de la página</title>
   <?
   $xajax->printJavascript("xajax/");
   ?>
   <script type="text/javascript">
<!--
   function muestra_cargando(){
      xajax.$('MensajeCarga').style.display='block';
   }
   function oculta_cargando(){
      xajax.$('MensajeCarga').style.display='none';
   }
  
   xajax.loadingFunction = muestra_cargando;
   xajax.doneLoadingFunction = oculta_cargando;
// --></script>
</head>

<body>

<div id="capa_actualiza">
<a href="javascript:void(xajax_funcion_lenta())">Llamar por ajax a una función lenta usando xajax</a>!
</div>


<div id="MensajeCarga" style="display: none;">
Cargando!...
</div>

</body>
</html>

y al ejecutar el script me da el siguietne resutlado, el cuál no tengo ni idea de cómo solucionar o qué hacer, ya que la variable existe y no entiendo por qué me da el error que no está definida :S

Citar
Detalles de error de página web

Agente de usuario: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Fecha: Fri, 27 Aug 2010 17:36:22 UTC


Mensaje: 'xajax' no está definido
Línea: 36
Carácter: 4
Código: 0
URI: http://localhost/borrar/newfile.php


Alguien me puede echar una mano??
Muchas gracias :)


« Última modificación: 28 Agosto 2010, 18:02 pm por novalida » En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Mensaje de carga usando xajax
« Respuesta #1 en: 27 Agosto 2010, 21:04 pm »

como es que mezclas php con javascript (los objetos) y... jquery????? x_x

lee esto :P

http://xajaxproject.org/en/docs-tutorials/learn-xajax-in-10-minutes/


En línea

Ojo por ojo, y el mundo acabará ciego.
novalida

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Mensaje de carga usando xajax
« Respuesta #2 en: 28 Agosto 2010, 18:01 pm »

Muy buenas,
al final no sé muy bien cómo pero se solucionó cambiando las etiquetas de php. No tengo ni idea de por qué ahora sí funciona y antes no lo hacía.
Envío el código actualizado a la versión de xajax 0.5 por si a alguien le puede ser de utilidad.

Código:
<?php
// Incluye la librería de clases xajax
require ('xajax/xajax_core/xajax.inc.php');

// Se crea una nueva instancia de un objeto xajax
$xajax = new xajax();

// Define la ruta para las llamadas a xajax
$xajax->configure('javascript URI','xajax/');

// Registramos el nombre de la función que queremos llamar mediante xajax
$xajax->register(XAJAX_FUNCTION, 'llamada_servidor');

// Procedimiento por el que xajax maneja las peticiones realizadas antes de enviar salida alguna
$xajax->processRequest();

// Función en la que se realiza una llamada al servidor
function llamada_servidor()
{
// Función que se realiza: pausa de 2 segundos
sleep(2);

// Se crea una nueva instancia de un objeto xajaxResponse
$objResponse = new xajaxResponse();
// Envía al navegador el comando como respuesta a la petición xajax
$objResponse->Assign("capa_actualiza","innerHTML","Finalizado");

return $objResponse;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Mostrar imagen de carga de datos</title>

<?php
// Permite a xajax generar el código javascript necesario
$xajax->printJavascript();
?>

   <script type="text/javascript">
   <!--
// Función que muestra la imagen de "cargando..." mientras se realizan las acciones con el servidor
   function muestra_cargando(){
   
      xajax.dom.create("capa_actualiza","div", "cargando");
      xajax.$('cargando').innerHTML='<img src="cargando.gif" alt="cargando..." border="0">';
   }

   // Función que se lleva a cabo cuando se ha devuelto la respuesta del servidor
   function oculta_cargando(){
      // lo que sea
   }
   
   // Determina qué función se llama mientras se espera respuesta del servidor
   xajax.callback.global.onResponseDelay = muestra_cargando;
   // Determina qué función se llama cuando se ha devuelto la respuesta del servidor
   xajax.callback.global.onComplete = oculta_cargando;
   // --></script>
</head>

<body>

<div id="capa_actualiza">
<a href="javascript:void(xajax_llamada_servidor())">Llamada al servidor</a>
</div>

</body>
</html>

Respecto a lo de mezclar los objetos php con javascript creo que es porque el framework xajax "interactúa" (no encuentro la mejor palabra para poder decirlo) con javascript. Tampoco tengo mucha idea de xajax y prácticamente nada de javascript, así que poco puedo aporta para ponerlo un poquito más claro.
De jquery... no tengo ni idea de lo que es   :silbar: pero ya lo aprenderé :).

En definitiva, el código por fin es funcional, requiriendo incluir xajax 0.5 en la ruta necesaria y la imagen gif que deseemos visualizar durante la carga.

Muchas gracias por haber contestado al mensaje.

Un saludo,
Novalida.
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Mensaje de carga usando xajax [SOLUCIONADO]
« Respuesta #3 en: 28 Agosto 2010, 21:17 pm »

jajaja pues eso xD que los objetos que usabas (en javascript) parecian de jquery por el signo $... con xajax no insertas ningun codigo en javascript para interactuar con lo que creaste en php xD

salu2
En línea

Ojo por ojo, y el mundo acabará ciego.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mensaje mientras carga PHP
PHP
javirk 3 5,980 Último mensaje 11 Mayo 2012, 21:12 pm
por pwnz
[Solucionado]¿Este .EXE de donde carga el archivo .DLL?
Ingeniería Inversa
{/col:/}Kisin{/col/} 2 1,545 Último mensaje 30 Diciembre 2013, 15:22 pm
por {/col:/}Kisin{/col/}
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines