| Login | Tour | Inicio | Chat | Descargas | Wallpapers | Páginas recientes | FAQ | | ||
Custom Search
![]() Emacs como IDE para CakePHP aarkerio La Negación del Viaje Lunar tonathiu Porque los mononeurones si tenemos madre! blacksoul BrunoFerías thot The Art vendaval Aclimatación extraterrestre ¿para qué? ahuramazdah ¿A que le tienes miedo? teosho Sobre nazis, terror y medios tonathiu Amenazas a la cuarta dimensión ¿de veras? ahuramazdah Tarjeta Broadcom BCM94311MCG rev 02 teosho Pidiendo OpenSolaris 2008.5 vendaval Sospechosismo aarkerio Slackware 12.1 Final vendaval Jaime Maussan da por auténtico video trucado del chupacabras hecho en Blender 3D asarch Linux hot girl aarkerio Calderón puede ser sujeto a juicio político, sostiene Carrancá tonathiu La desnutrición en México aarkerio Sistema Infalible ordbal Histórico aarkerio Nietzsche en la FCPyS aarkerio ![]() GNU/Linux ![]() Hacktivismo ![]() Debian ![]() NetBSD ![]() WWW ![]() Guia Linux ![]() Server Side ![]() Ofimatica ![]() Despabilando... ![]() Mundo Maya ![]() Literatura ![]() Agora ![]() Psicologia ![]() Economia ![]() Ambientalismo ![]() Desarrollo Biologia ![]() |
WWW \ Tutorial de AJAX con PHP y JSON Este artículo ha sido consultado en 2,021 ocasiones. Autor: Mariano Vassallo (mvassallo @ gmail.com) O como programar el próximo Gmail separando código, base de datos, diseño y presentación de forma natural. Todo el mundo envidia la interface de usuario de Gmail. Hasta que los muchachos de google lo sacaron yo no hubiera usado un webmail aunque me pagaran. Lo revolucionario es su interface limpia y simple y que una vez que entrás a la página parece un solo programa, y no un montón de páginas unidas entre si por links. La responsable de esto es una tecnología llamada AJAX. En este artículo vamos a ver como programar en AJAX usando Javascript y PHP para lograr aplicaciones mas rápidas, mejores interfaces y . ¿Qué es AJAX? AJAX no es un lenguaje en si. Es el acrónimo de Asynchronous JavaScript And XML y es una nueva (relativamente) forma de hacer páginas web. En el corazón de Ajax está el objeto XMLHttpRequest que permite desde javascript obtener el contenido de una url. Usando este objeto desde una página HTML común se puede leer datos de la web, o enviar los datos de un formulario a un servidor sin necesidad de hacer un refresh en la página. Recordemos como funciona una mini aplicación web tradicional y despues veamos como funcionaría en AJAX. En web tradicional uno crearía una página HTML con un formulario. Cuando el usuario hace click en el botón de enviar el browser se conecta al servidor, envía los datos y muestra en pantalla la pagina que el servidor devuelve. Esto hace que el browser “salte” a otra página. Además el usuario tiene que esperar que se cargue todo el HTML de la nueva página para verla. En AJAX pondríamos un código javascript que haría que cuando hacen click en enviar se cree un objeto XMLHttpRequest. La llamada es asyncrónica. Esto significa que se envían los datos y esto no interrumpe al usuario como cuando enviamos un formnulario. En la llamada definimos una función de JavaScript que va a ser llamada cuando el servidor responda. Esta función (”callback”) es la que recibe la contestación del servidor y que por ejemplo puede actualizar un texto en la pagina para avisar que los datos se enviaron ok. El browser no cambia de página. La primera ventaja que vemos es que la experiencia del usuario es mucho mas parecida a usar un programa que una página web. Y ahí está el cambio de paradigma. En vez de pensar en función de páginas enlazadas entre si tenemos que pensar en una aplicación, que envía datos y recibe datos. La siguiente ventaja es la velocidad. En vez de tener que recibir todo el HTML de la página de confirmación nuestro formulario AJAX solo necesita que el server le responda OK o que algo no anduvo. Prototype Usar XMLHtppRequest no es muy cómodo y además tendríamos que salvar problemas de compatibilidad entre browsers. Para faclitar las cosas vamos a usar una librería que se encargue de crear el objeto XMLHttpRequest por nosotros. Se llama Prototype se usa en otras librerías muy buenas como Open Rico y Script.aculo.us y en Ruby on Rails. ¿Como se comunica el servidor con mi página? Como dijimos antes, la X de AJAX viene de XML. Se supone que las respuestas del servidor vienen coificadas en XML. Se puede manejar XML en Javascript, pero a mi modo de ver usar XML para esto es matar moscas con una maza. Procesar el XML y programar el código es un overhead que se puede evitar. Además el XML se puede volver un poco pesado si lo que devolvemos son muchos datos. JSON al rescate Cuando lean esto van a preguntarse como no se les ocurrió a ustedes (salvo que sean Douglas Crockford) Javascript es un lenguaje interpretado, y tiene una función llamada eval() que curiosamente lo que hace es evaluar lo que le pasemos y ejecutarlo. Por ejemplo eval(”alert(hola)”) hace que se ejecute la función alert(”hola”), mostrando un mensaje. Ahora, la instrucción eval(”[’a',’b']”) es perfectamente válida y devuelve un array conteniendo ‘a’ y ‘b’. JSON es un formato de intercambio de datos alternativo a XML, mucho mas simple de leer, escribir e interpretar. Significa Javascript Object Notation y consiste en escribir los datos en Javascript. Evaluar un array, entero o string escrito como código javascript es trivial en cualquier lenguaje. Si queremos transmitir una letra a la escribimos como “a”; un entero es el mismo número, y los arrays se escriben entre corchetes separados por comas. Los diccionarios así: { ‘clave1′:’datos1′, ‘clave2′:’dato2′, ‘numero’:100} El servidor (escrito en PHP, pero podría ser Python, C o cualquier lenguaje) devuelve el código Javascript para hacer un array, o un entero o un string y en el browser el callback que lo recibe hace un eval() del resultado. De eso se trata JSON Suficiente teoría Programemos algo. Para empezar en vez de un script en el servidor vamos a crear una página estática. archivo: ejemplo1.html
Archivo: ejemplo1.php “Hola! Soy un mensaje que viajó por AJAX/JSON!” Para el siguiente ejemplo, un poco mas útil, definimos un DIV para que el usuario haga click sobre el. Cuando hace click se ejecuta un request AJAX. Esta vez la respuesta no es solo un texto sino un array. Cuando llega la respuesta se evalua el array y se lo pasa a otra función que llena un DIV con los datos, agregándoles un poco de texto. Datos desde PHP Hasta hora los datos salieron de páginas estáticas. No tiene mucha gracia, asi que vamos a sacar datos deun array de PHP. Transformar un array en una representación JSON es simple, pero para qué reinventar la rueda. Por eso vamos a usar JSON-PHP. Codificar un array con JSON-PHP es tan simple como esto:
Eso es todo lo necesario. Ahora leamos unos datos desde MySQL para poder hacer aplicaciones mas complejas. Nota: para crear la tabla MySQL del ejemplo ejecutar: create database mi_tabla; create table mi_tabla ( campo1 integer not null, campo2 varchar(50)); archivo: ajax.html
archivo: datos2.php
Lo mas intresante de esto es que no cambiamos en nada la página html y ahora los datos dejaron de ser estáticos y salen de una base de datos. Eso me da pie para la siguiente ventaja: Separación de código, presentación y diseño gráfico Primero existió el HTML. Después apareció el PHP y lo fantástico del lenguaje era que a diferencia de CGI (no pregunten cuando empecé a programar…) se podía intercalar programación en medio del HTML. ¿Quien iba a pensar que años después esto iba a ser la principal queja sobre PHP? Ahora todos rogamos por una forma de separar el código de nuestros programas del diseño de las páginas. La forma de programar que presenté en este artículo separa naturalmente el código de la presentación. Si a los métodos AJAX les sumamos CSS podemos dividir nuestras aplicaciones web de forma prolija. La lógica de programa y acceso a datos los hacemos en PHP. La interface de usuario la creamos en HTML definiendo DIVs, botones, etc, pero nada de diseño. Un DIV atrás del otro. La lógica de presentación en JavaScript (en un archivo .js separado del HTML) El diseño gráfico (colores, tipografías, etc) en CSS.
Así que lo que comenzó como una mejora en la interface de usuario se transformó, gracias a AJAX, PHP y CSS en una nueva forma de trabajo que espero les ahorre muchos dolores de cabeza. La mayor ventaja que le veo es que la división entre operaciones sobre datos (lo que llaman “logica de negocios”), el código de la interfaz de usuario, y el diseño gráfico están divididos físicamente en archivos separados, y no como una imposición del modelo sino en forma natural. Que sigue Como ya se habrán dado cuenta, usamos PHP porque es el lenguaje mas difundido. De la misma forma que reemplazamos el archivo JSON estático por PHP podemos reemplazarlo por cuaquier lenguaje. Nada evita que usemos Python, ASP en un servidor Windows, C o C++ via CGI, Perl, Ruby o el lenguaje que se les ocurra. Lo mejor es que hay librerías para JSON disponibles para muchos lenguajes, y sino escribir una no es nada complicado. Links recomendados: prototype.conio.net La página de Prototype http://wiki.script.aculo.us/scriptaculous/show/Prototype Documentación sobre Prototype
http://marianov.wordpress.com Mi blog Última actualización: 2007-04-29 10:56:59-05 on 8/9/07 Albert wrote: OLle mira este es el mismo mini tutorial http://thinkcoderepeat.blogspot.com/2006/02/tutorial-de-ajax-con-php-y-json.html lo copastes¿?¿?¿ na ke veR ajajJAAJ mononeurona mula ajajJaj mas trcucho todo esto.. copion puede ser!!!! ajajajajajaj on 9/9/07 aarkerio wrote: La obra es Creative Commons. |
![]() Preparandome para el viaje a Puerto Vallarta... que triste... 1 hour, 17 minutes ago Du hast? 5 hours, 20 minutes ago Ich habe einen Kater, aber nicht so schlecht... 12 hours, 54 minutes ago Y yo un Abrazo. 1 day, 12 hours ago Dandole su habrazote a mi santa madre que me soporta 1 day, 14 hours ago esperando a que este el pozole 1 day, 16 hours ago Que estuvimos haciendo >> 10410 lecturas Sexualidad infantil y juvenil 9166 lecturas Anticoncepción de Emergencia 7840 lecturas Rompiendo cualquier clave WEP en unos pocos minutos 6917 lecturas Sinapsis y exocitosis 6227 lecturas Mi primer CakePHP, mmmmm cakeee 5260 lecturas Evolución filética en las hepáticas 4697 lecturas BASH y Primeros Comandos 4012 lecturas CakePHP II Active Record 3742 lecturas Cómo convertirse en hacker 3619 lecturas
|
| ||
| Consulta el ojo de tú enemigo, porque es sincero al ver tus defectos. Antistenes | ||
| Este trabajo está licenciado bajo la MonoNeurona Commons License. 2002-2008 © :: Colectivo MonoNeurona.org :: | ||