Por fin tengo mi propia clase AJAX , siempre he usado XHconn que me parece perfecta, fácil de implementar y de usar.
Partiendo de varios conceptos he creado una clase que se adapta a mis necesidades, enviar parámetros, recoger el refer, disparar una función y actualizar en una capa.
La clase es fácil de usar, solo tienes que rellenar los argumentos.
Existen dos métodos, ajax.get y ajax.post:
ajax.get(url,parametros,función);
El primer argumento es el que mas destaca, la única novedad que tiene es que puedes concatenar la respuesta o añadirla delante.Se usa de una forma sencilla y es definiendo el ancla.
ajax.get('ajax.php#update');
En esto ejemplo la respuesta obtenida en ajax.php se cargaría en la capa con id update.
ajax.get('ajax.php#^update');
Igual que el anterior pero añadida delante
ajax.get('ajax.php#+update');
En este caso la respuesta estaria concatenada con el html del contenedor.
El segundo argumento (opcional) es pasado como un objeto e indicamos los valores a pasar. Esto se hace de esta forma porque resulta muy comodo, mucho mejor que escapar manualmente los caracteres.
ajax.get('ajax.php#update',{id:125,action:"ajax"});
El tercer argumento (opcional) es para indicar una función y dispararla al obtener la respuesta de la pagina.
ajax.get('ajax.php#updare',{id:125,action:"ajax"}, function(oRequest) { alert(oRequest.responseText); } );
El modo de uso no es complicado, solo tienes que añadir al onclick del enlace un return ajax.get();, la función retorna false y el link del href no se efectúa.
<a href="update.php" onclick="ajax.get('ajax.php#update');">Enlace</a>
<div id="update"></div>
Descargar la clase AJAX.
Comentarios
Luego: Como haces para llamar a la funcion del PHP? (o del lenguaje servidor que corresponda), a la funcion que te refieres en tu clase es a una funcion JavaScript…
# · Diego · hace 2266 días
# · Icebeat · hace 2266 días
http://script.aculo.us/
# · guu · hace 2266 días
Esta chulo, y facil de usar y entender.
# · EnZo · hace 2265 días
# · Alex Sancho · hace 2263 días
aj = new ajax;
aj.get(....)
Si no ¿que pasa si pulso dos veces al botón o quiero hacer dos peticiones asincronas distintas? No se pueden hacer dos instancias distintas luego no es una clase. Esto pasa cuando los diseñadores gráficos se meten a programadores… malo, malo :(
# · kNo · hace 2263 días
kNo lo hago lo mejor que puedo, quizas me haya equivocado en llamarla clase, pero eso no quita que no funcione y cumpla su función.
Sobre el tema de los diseñadores desarrolladores mejor no entrar en debate.
# · Icebeat · hace 2262 días
Yo manejo bien Prototype y Script.aculo.us y me parecen sencillos, pero no podria hacer nada de calidad como esta web, por ejemplo. O sea, si combinaramos nuestras habilidades podrias tener cosas muy utiles y robustas y ademas con diseños excelentes.
Insisto, me parece bien que hagas tus propias librerias, eso te lleva a entender mucho mas las cosas. Yo lo hice tambien. Pero es mas facil aprender a utilizar Prototype que hacer su propia libreria.
Si te interesa, puedo darte una mano con eso. Es mas, podemos hacer algun mini-proyecto y ver q tal.. bueno, solo una idea.
Saludos
# · guu · hace 2260 días
Guu ahora mismo ando liado en un proyecto bastante bueno, pero por ejemplo en ese solo me encargo del diseño, tienes mucha razón que cada uno se especialize en lo que toca, pero yo no le tengo miedo al codigo igual que algunos programadores al diseño.
# · Icebeat · hace 2258 días
Disculpen por las molestias, resulta que desde algunos días no puedo editar imágenes en WebFtp y no soy el único usuario de bitácoras.com con este problema.
Saludos
# · Cristian Villaseca · hace 2254 días
He notado que cuando cargo contenido obtenido mediante AJAX y si este nuevo contenido trae trocitos Javascript, estos no son interpretados, es decir, si en el nuevo contenido traigo un [ alert(‘Holas’); ], cuando se carga no muestra el mensajito…
Habrá alguna forma de poder hacer que lo interprete???
# · Aure · hace 2248 días
# · Icebeat · hace 2247 días
# · Aure · hace 2246 días
# · Icebeat · hace 2245 días
Tnx
# · Aure · hace 2244 días
# · IceBeat · hace 2235 días
Gracias a esta sencillisima clase he podido trabajar con AJAX !!
Yo empecé con librerias complejas, y aunque unas más que otras, todas bastante pesadas. Y lo único que quería era lo mínimo para hacer una conexión tipo AJAX, de lo más sencillo.
Este es el único código que haya visto que funciona perfectamente en todos los navegadores, y cumple su función perfectamente, ni más ni menos.
La he utilizado en varios proyectos interesantes con muy buenos resultados. Muchísimas gracias.
Y acerca de los desarrolladores / diseñadores. Yo no me considero ni una cosa ni la otra. Tanto me da por currarme un buen diseño tirando del CSS y HTML como por programar y desarrollar mis algoritmos, funciones y demás en PHP, Javascript, etc. No creo que sean incompatibles, más bien complementarios. Además, lo mejor que puede hacer uno es experimentar con lo que le gusta.
Un saludo.
# · Alex Barros · hace 2021 días
Está muy chida tu explicación y tu clase de ajax me servira para hacer mi propia clase utilizare tu clase como molde de la mia. jajaja gracias
# · Frank · hace 1953 días
Frank mootools es una buena libreria, te la recomiendo mister.
# · IceBeat · hace 1952 días
Existe una manera mas sencilla para tomar los parametros que se enviaran por ajax?, es decir en lugar de tener por ejemplo la forma:
ajax ('div', 'pagina', 'var_1='+document.form.texto.value ... etc..
ya que si tengo que enviar mas de 5 ya se hace tedioso y trabajoso, conocen alguna manera de automatizar el envio de los parametros?
# · ovreuc · hace 1890 días
@ovreuc te recomiendo mootools.
# · IceBeat · hace 1889 días