Foros del Web » Programando para Internet » Javascript » Frameworks JS »

xajax, ¿por qué no tira este ejemplo?

Estas en el tema de xajax, ¿por qué no tira este ejemplo? en el foro de Frameworks JS en Foros del Web. Tengo este sencillo código en xajax pero no tira la cosa. ¿hay que configurar algo en el servidor o algo o alguna parte del código ...
  #1 (permalink)  
Antiguo 26/04/2009, 10:44
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Pregunta xajax, ¿por qué no tira este ejemplo?

Tengo este sencillo código en xajax pero no tira la cosa. ¿hay que configurar algo en el servidor o algo o alguna parte del código erroneo? muchas gracias

Código PHP:
<?php
include('xajax_core/xajax.inc.php'); 
$xajax = new xajax();
$xajax->registerFunction("cuenta"); 
function 
numero( ){
    
$respuesta = new xajaxResponse();
    
$num="5";
    
$respuesta->addAssign("respuesta","innerHTML",$num);
    return 
$respuesta
}
$xajax->processRequest();
?> 

<html>
<head>
<title>Ejemplo de xajax</title>
<?php $xajax->printJavascript(); ?>
</head>
<body>
Xajax
<div id="respuesta" ></div>
<input type="button" onclick="xajax_numero();" value="Numero" />
</body>
</html>
  #2 (permalink)  
Antiguo 26/04/2009, 10:54
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: xajax, ¿por qué no tira este ejemplo?

Código php:
Ver original
  1. $xajax->registerFunction("cuenta");
  2. function numero( ){


Cómo se llama tu función?

  #3 (permalink)  
Antiguo 26/04/2009, 10:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: xajax, ¿por qué no tira este ejemplo?

haber, no se como funcione Xajax pero....

asignas una funcion llamada "cuenta", creas un función llamada numero()

y finalmente llamas desde el código fuente a, xajax_numero()


revisaste el código generado, ¿que sale en donde va el método printJavascript()??

¿estas leyendo la guia de uso de Xajax o lo estas haciendo al aire??

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 26/04/2009, 11:09
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: xajax, ¿por qué no tira este ejemplo?

@pateketrueke, el error es efectivamente el nombre de la función (cuenta() o numero()). El método printJavascript() de xajax imprime un trozo de código "motor" y declara las funciones que se ha registrado en el proceso en PHP, pero las registra agregándoles un prefijo xajax_, de ahi viene que se deba llamar a xajax_nombre_de_la_funcion_php y no con su nombre original.

  #5 (permalink)  
Antiguo 26/04/2009, 11:25
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: xajax, ¿por qué no tira este ejemplo?

Ya esta funcionando, no solo era el nombre de la función...

Cita:
<?php
include('xajax_core/xajax.inc.php');
$xajax = new xajax();
$xajax->registerFunction("numero");
function numero($arg){
$respuesta = new xajaxResponse();
$num=$arg;
$respuesta->assign("respuesta","innerHTML",$num);
$respuesta->assign("respuesta","style.color","red");
return $respuesta;
}
$xajax->processRequest();
?>

<html>
<head>
<title>Ejemplo de xajax</title>
<?php $xajax->printJavascript(); ?>
</head>
<body>
Xajax
<div id="respuesta" >Aqui irá el resultado</div>
<input type="button" onclick="xajax_numero(6);" value="Numero" />
</body>
</html>
hay que colocar

Cita:
$respuesta->assign("respuesta","innerHTML",$num);
en lugar de

Cita:
$respuesta->addAssign("respuesta","innerHTML",$num);
la versión de xajax es la 0.5

muchas gracias, de este modo si funciona
  #6 (permalink)  
Antiguo 26/04/2009, 11:36
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: xajax, ¿por qué no tira este ejemplo?

En ese caso tienes que desechar también el método registerFunction() y usar register() en vez de.

Código php:
Ver original
  1. $xajax->register(XAJAX_FUNCTION, "numero");

http://xajaxproject.org/en/docs-tuto...-0-2-x-to-0-5/

  #7 (permalink)  
Antiguo 26/04/2009, 11:39
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: xajax, ¿por qué no tira este ejemplo?

Funciona igual de ambas maneras... son disponibles, es decir, elijo yo cual uso? o ¿una es mas correcta que la otra?
gracias
  #8 (permalink)  
Antiguo 26/04/2009, 11:44
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: xajax, ¿por qué no tira este ejemplo?

Si lees el link que te di, verás que register() fue implementado en la versión 0.5 para integrar todas los métodos que "registran" algo, al igual que configure() para los que sirven para establecer configuraciones del script. Es mejor que uses los nuevos, pues en nuevas versiones (si es que hay) tal vez esos métodos antiguos obsoletos (como registerFunction) dejen de existir y tendrás que modificar todo el script.

Es lo mismo que pasa con muchas directivas de PHP, como register globals o magic quotes, que van a desaparecer recién en PHP6, pero que fueron obsoletas desde mucho antes.

  #9 (permalink)  
Antiguo 26/04/2009, 11:59
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Entendido perfectamente, el otra está obsoleto o a extinguir en un futuro.

Muchas gracias, una cosita mas, sino es abusar.

Cita:
$respuesta->assign("respuesta","innerHTML",$num);
$respuesta->assign("respuesta","style.color","red");
como ves la última opción modifico el color, he buscado en el manual las posibles opciones que se pueden implementar, como "innerHTML", "style.color" pero no encuentro mas, aunque supongo que debe haberlas, es que he intentado por analogía

Cita:
$respuesta->assign("respuesta","style.font-size","large");
pero no funciona.

gracias de nuevo, me ha servido de mucho

Lo que he hecho es esto.

Cita:
$num="Num aleatorio entre 1 y 1000 es <span style='color:#00F; font-size:16px;'>".rand(1,1000)."</span>";
$respuesta->assign("respuesta","innerHTML",$num)
;

un saludo

Última edición por GatorV; 26/04/2009 a las 17:23
  #10 (permalink)  
Antiguo 26/04/2009, 12:20
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: xajax, ¿por qué no tira este ejemplo?

Código php:
Ver original
  1. $respuesta->assign("respuesta","style.fontSize","large");
Tiene que ver con JS. Teniendo el primer parámetro se hace una llamada JS tipo document.getElementById('respuesta'), y puedes usar como segundo y tercer parámetros todas las propiedades que existan para ese objeto (HTML DOM Objects):

http://www.w3schools.com/htmldom/dom_reference.asp


Última edición por okram; 26/04/2009 a las 12:25
  #11 (permalink)  
Antiguo 26/04/2009, 12:32
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: xajax, ¿por qué no tira este ejemplo?

muchas gracias, una ayuda inestimable
  #12 (permalink)  
Antiguo 26/04/2009, 17:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: xajax, ¿por qué no tira este ejemplo?

Tema trasladado desde PHP
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 19:06.