jueves, 13 de agosto de 2009

SCRIPT PARA CARGAR PAGINAS CON AJAX

En este post les mostrare como poder recargar una pagina con Ajax, en si es un codigo que quiero mostrarles, bastante basico y sencillo, donde solo cargo una pagina con el ObjetoXMLhttpRequest (El Corazon de Ajax) que es muy util en el momento que deseamos mostrar alguna informacion o simplemente hacer una llamada Asíncrona, el ejemplo quedara masomenos asi:Para esto voy a utilizar un script "ajax.js", el cual ire explicando por partes

archivo: ajax.js

  function getXMLHttpRequest(){

var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}



Bueno, si recien estas empezando con Ajax y derrepente no entiendes este codigo, no te preocupes pues solo lo utilizaremos para crear el objeto XMlhttpRequest y siempre
va a ser de la misma manera, no variara para nada, excepto a la hora de mandar algunos parametros.

Luego de ese metodo, crearemos una funcion, la cual llamará a este método que hemo creado

archivo: ajax.js

function TraerPagina(datos,contenedor){ //datos= URl de la pagina qu queremos mostrar - contenedor=id del
// objeto donde quieres mostrar la respuesta del servidor (generalmente un div, pero no necesariamente)
divResultado = document.getElementById(contenedor);
ajax=getXMLHttpRequest();
ajax.open("GET", datos); //metodo de la peticion (tambien puede ser POST)
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML=ajax.responseText
}
else {
divResultado.innerHTML='Imagen Gif Cargando'; //Aqui poner un tag (img src="loading.gif"), que se cargara mientras se completa la transaccion
}
}
ajax.send(null)
}

Esos dos codigos de arriba, van a ir en un solo archivo que lo llamaremos "ajax.js".

Ahora crearemos una pagina de donde haremos las llamadas a otras pagina mediante "Ajax";




















Para Hacer cada llamada, lo hacemos especificando la URl a la que deseamos llamar, y el nombre del Objeto









En Este caso, el Objeto en el cual quiero que se muestre la informacion es un DIV con id "sam"







Le das click al boton y la informacion en la parte de abajo cambia sin refrescar la pantalla haciendo una peticion Asíncrona. a los archivos a los que hace referencia, no son mas que 2 archivos .html (alumnos y docentes) que tienem un texto cuanquiera, ahi tambien se puede llamar a archivos .php, .jsp, etc. y traer informacion de una Base de datos o un contenedor de informacion como puede ser un XML.

Más Adelante les mostrare como llamar por el metodo POSt enviando parámetros a u archivo PHP.

LAS FUENTES:
DESCARGAR FUENTES DEL EJEMPLO (.zip)


EJEMPLO EN FUNCIONAMIENTO:

Ejemplo

->Comentarios<-

09 Ago
  • Anonymous en comprobar usuario con ajax:
    Samuel.... antes que nada sosssssssss unnnnnnnnnn capoooooooooooooo hace mas de una semana que queria cargar un formulario y que al grabar en la BD me muestre un mensade "Loko Cargaste del gran &%$#*[" y no daba pie en bola.... Gracias a tu ejemplo por fin pude hacer lo que queria.... sos grande... Daniel Talaver de Paraguay

26 Jul
  • Anonymous en codificando y decodificando json:
    Hola.. xajax podria ser una buena alternativa para trabajar con PHP y Ajax, pero para mi gusto preferiria separar el codigo php del codigo Javascript y Html, en este ejemplo en particular aun no se logra al 100% esta separacion,pero al tener tu codigo separado podras reutilizarlo y ademas la ejecucion será en un porcentaje más rapida...Echale un vistazo a : http://es.wikipedia.org/wiki/JavaScript_no_obstructivo

21 Jul
  • Anonymous en comprobar usuario con ajax:
    Me encanto! muchas gracias! alguno tiene una idea para hacerlo sin presionar el boton "disponible", es decir, que el usuario escriba su nick y que al pasar al siguiente input se verifique la disponibilidad de manera automática? gracias!

20 Jul
  • Anonymous en comprobar usuario con ajax:
    Podrias subir nuevamente el código? porque intente descargar y se borro el link. Desde ya muchas gracias. Saludos!

29 Jun
25 May
18 Dic
15 Dic
  • Anonymous en comprobar usuario con ajax:
    He hecho algunas correcciones, el ejemplo que estaba en el ZIP no era el mismo del que estaba en el ejemplo.. :S, ahora si es el mismo, y tambien le puse el Script de la DB, que no estaba antes...Para solucionar el problema de la llamada Ajax pueden utilizar JQuery.. mas adelante pondre algunos post utilizando JQuery...

14 Dic
  • Anonymous en comprobar usuario con ajax:
    Me funciona bien, lo comprobe con el firebug y se que funciona bien, pero me ocurre algo que no logro entender..... cuando aparece el mensaje en el DIV. Automaticamente se borra el texto del cuadro de texto del Nombre de usuario y desaperece el mensaje de Disponible..... es como si se recargara la pagina..... no se por que me ocurre esto.Un saludo. A ver si alguien me puede ayuda....Muchas Gracias.

14 Dic
  • Anonymous en comprobar usuario con ajax:
    ESta muy bien explicado.... la verdad no consegui hacerlo correr y no se por que.Con el firebug me detecta un par de errores en el archivo .js en la linea donde se indica que se cree el objeto active active x.Concretamente me da error en la siguientes lineas:xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");Y No consigo que ejecute el codigo PHP del archivo comprobarUsuario. Puse un echo en la primera linea del arcvhivo para ver…