Integrando PHP con JavaScript (1 min read)

Recientemente terminé una aplicación sin mayor chiste que lograr una integración decente entre PHP y JavaScript.

La aplicación en si es una lista de bookmarks, en la cual cada entrada puede ser calificada por los usuarios una vez por sesión. Hay dos formas de hacerlo, la primera es usando el xmlHttpRequest el cual es un objeto para enviar, manejar y recibir solicitudes via http, en particular (mas no exclusivamente) solicitar xml via http (como su nombre bien lo dice :)). En esta liga Pablo Fischer habla un poco de el.

La segunda forma es la que uso, de hecho un poco menos profesional, es usando el atributo target del objeto form, un iframe y una medida dosis de javascript.

Para empezar hacemos el iframe cuyo atributo name sea correspondiente con el target de la forma. Seria bueno hacer el iframe invisible usando css: style='visibility:hidden;width:0px;height:0px'. Si usaba display:none, el safari no lo veia por lo que abria una nueva ventana con el nombre que ponia en el target. De esta forma, el handler de la forma sera abierto dentro del iframe sin cambiar (en principio) la vista de la aplicación. Desde adentro del iframe, usando javascript, nos podemos referir al frame principal (contenedor del iframe) como document.parent.anyThing() y asi actualizo la información desplegada en el frame principal.

En cuanto pula un poco mas el codigo, lo publico, mientras aqui pueden ver la pantalla principal, y aqui parte del javascript que se ejecuta dentro del iframe.

Una nota muy importante es darse cuenta que esto depende en gran medida del browser, lo probe en safari y en firefox, no lo he probado en Internet Explorer.


Si te gustan las fotos o el artículo, puedes seguirme en Instagram o Twitter para más fotos. Si quieres usar alguna foto, contáctame, no habrá ningún problema 😎, si es para uso personal casi seguro que sólo te pediré que me des crédito 🤜🤛.

One thought on “Integrando PHP con JavaScript”

Leave a Reply

Your email address will not be published. Required fields are marked *