Mostrando las entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta programación. Mostrar todas las entradas

22 de junio de 2013

jquery+ajax for dummies

Sé que quizás existan miles de tutoriales, manuales para principiantes y mucha documentación sobre el tema del jquery, ajax y ambos inclusive... En todo caso lo que quiero es mostrar un poco y de la forma más sencilla como pueden usar esta herramienta que "saca las patas del barro" (venezolanismo para indicar que algo puede ser muy útil en un momento oportuno). Primero voy a explicar sin mucho tecnicismo y a mi manera como estoy acostumbrado, de que trata esto del jquery y el ajax. Es conveniente que sepas algo de HTML y javascript para entender este artículo. Sino aprende y vuelve.

jquery
Es un framework de trabajo, plataforma, plugin, addon, o como quieras llamarle (aunque el correcto es framework), basado y programado en lenguaje javascript, ese lenguaje que está inmerso en el HTML (páginas web) para realizar cosas asombrosas. La realidad es que un sitio web que no tenga javascript por algún lado ya está obsoleto y seguramente no está condicionado para las nuevas tendencias visuales y de funcionalidad. El propósito básicamente de usar jquery "en vez" de javascript, y coloco "en vez" entre comillas porque jquery = javascript, es facilitar la programación y unificar las diferencias que puedan existir en la forma  que los navegadores interpretan el javascript plano, en otras palabras ahorrar tiempo, de hecho su lema es Write less, do more (Escribe menos, haz mas).
Existen varios frameworks poderosos similares, como el mootools y yum, pero yo empecé trabajando con jquery y no me ha ido mal, además que la cantidad de documentos y addons derivados que existen sobre él abundan en la web.


Instalación y uso del jquery
El jquery gracias a sus creadores es un simple archivo, de formato .js, que puedes colocar en tu sitio.
Ha sido mejorado con el paso de los tiempos en versiones que puedes descargar en su página oficial http://jquery.com/.
La instalación no es más que agregar la línea de código:
<script src="jquery.js"></script>
(Generalmente en la sección <head> pero esto no es obligatorio). Otra forma de agregarlo sería desde la web de google code, y siempre vas a tener la última versión.

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

Quizás esto pueda causarte problemas si combinas jquery para hacer función de otro framework. Así que te recomiendo la primera forma.


Para usar el jquery puedes empezar por la función ready que es cuando finaliza la carga de la página, de la siguiente forma

<script> $(document).ready( function(){   alert('el jquery funciona')   });</script>

fíjense que se usa el símbolo $ luego entre paréntesis el objeto a manipular, en este caso document, que es una palabra o variable reservada para el script que indica el objeto página como tal, luego viene el método ready y dentro de él viene una función que es donde se pudieran inicializar condiciones, variables, otras funciones de la página, etc.

Podemos probar con una suerte de ejemplo "Hola mundo" con un botón, un div  y un input al cual le cambiaremos el valor. Estudien el ejemplo:

<html>
<head>
<script src="jquery.js"></script>
</head>
<body>
<div id="div1">Esto es un div común y silvestre</div>
<input type="text" id="input1" value="Esto es un input corriente"/>
<button onclick="holamundo();" >Hola</button>
</body>
<script>
         function holamundo(){
               $('#div1').html('Hola mundo');
               $('#input1').val('Hola mundo')
               alert('Hola mundo, usted ha cambiado con jquery los valores de un input y de un div');
         }
</script>
</html>

En el ejemplo anterior, lo que hacemos es decirle al botón que al presionarlo (onclick) ejecute la función holamundo, esta función realiza 3 actividades, primero cambia el html interno del div1 por "Hola mundo", luego cambia el contenido de la caja de texto por "Hola mundo" también y luego muestra un simple alerta. Ahora bien, fíjense que a diferencia de $(document) el div y el input son referenciados con $('#div1') y $('#input1') respectivamente, eso es hacerles referencia con el ID del elemento, hay que colocar entre comillas simples o dobles, un numeral (#) y el nombre del elemento. Luego vemos que para el DIV usamos el método .html() y para el input usamos el método .val(); esto es porque el div es un contenedor y el input un control que manipula valores (values).

Ha sido muy sencillo eso verdad ?, cuando empiece a explicar con Ajax se complica un poco las cuestión pero no te asustes todavía. La cantidad de funciones y operaciones que se pueden realizar con jquery son inmensas, pero con asignar valores y operaciones sencillas se le va agarrando confianza al framework.

Ajax
Bien, entramos en ese monstruo llamado Ajax, muy usado en las tendencias actuales para cargar contenido. Y bien, pero que es Ajax?, pues es una técnica de programación en sí, es un acrónimo de Asynchronous JavaScript and XML y permite cargar contenido de forma asíncrona en una web.

Te preguntaras que es esto de síncrono, asíncrono, y como se come. Bueno en términos gruesos una operación síncrona es una petición cliente-servidor, que al momento de ser ejecutada el cliente debe esperar la respuesta del servidor para continuar las operaciones. un ejemplo claro es un formulario de contacto, de esos que cuando le das enviar después de colocar los datos, la página se tarda unos segundos (o minutos) en actualizar y te da una respuesta. O Cuando abres una página nueva en el navegador es de por si una operación síncrona, es decir viene de sincronía, tiempo continuo, simultaneidad.

Una operación asíncrona, a diferencia de su antónima permite en "destiempos" realizar operaciones y mientras el cliente espera la respuesta del servidor la página no pierde "sincronía" puedes seguir trabajando en ella. Cualquier aplicación web actual utiliza este método, por ejemplo cuando agregas un comentario o publicas un status en tu red social, la página mientras agrega ese comentario, puedes seguir navegando y usando la página y quizás realizando otras operaciones que ejecuten más eventos asíncronos. Digamos que son peticiones cliente-servidor de segundo plano.

Ajax+jquery
Ahora, como entra aquí nuestro ahora querido amigo jquery ? pues bien, dado que Ajax es una técnica de programación en sí, usando javascript, y jquery es un framework para facilitar codificación en javascript, no podían estar separados. jquery permite realizar las operaciones de Ajax muy sencillas y crossbrowser, es decir, el mismo código para los distintos navegadores. En el siguiente ejemplo voy a mostrar un código sencillo para cargar contenido de una operación Ajax.

<html>
<head>
<script src="jquery.js"></script>
</head>
<body>
      <div id="div1">Esto es un div común y silvestre</div>
      <button onclick="operacionAjax();" >Hola</button>
</body>
<script>
            function operacionAjax(){              
                $('#div1').html('<p>Cargando</p><img src="ajax-loader.gif" />');
                $.ajax({
                    cache: false,
                    type: 'post',
                    url: 'proceso.php',
                    data:{
                        variable1:'Hola',
                        variable2:'Mundo'
                    },
                    success: function(response) {
                        $('#div1').html(response);
                    }
                });
            }
</script>
</html>

Fíjense bien que el botón Hola ahora llama a la función operacionAjax(), que realiza 3 actividades, la primera es cambiar el contenido del div1 a una imagen gif de loading (puedes conseguir varios aquí www.ajaxload.info/), la segunda es la petición de ajax como tal, o sea una petición cliente servidor asíncrona, de tipo post, a la url proceso.php con 2 variables (variable1 y variable2) con sus respectivos valores ("Hola" y "Mundo"), y la tercera actividad (success) es la respuesta de dicha solicitud, que como es asíncrona, será aplicada cuando el servidor responda, y se cambiara el contenido del div1 por lo que trae la variable response.


la url proceso.php va a ser el postsrcipting del servidor, y puede ser en este ejemplo algo como

<?php
$var1 = $_POST['variable1'];
$var2 = $_POST['variable2'];
echo $var1.' '.$var2;
?>

lo que quiere decir que procesará la petición leyendo las dos variables de tipo POST enviadas por el Ajax y las concatenara como respuesta. cuando el servidor ejecute esas sentencias sucederá el evento "success" del Ajax y la variable response contendrá lo escrito por el echo del php "Hola Mundo" contenido en las variables previamente mencionadas.


Bueno queridos lectores hasta aquí dejo la lección, espero que les hayan sido útil estos sencillísimos pasos para usar el ajax de jquery. De todos modos deben seguir documentándose sobre el tema, bajar tutoriales y archivos con ejemplo.

Cualquier duda sobre los ejemplos o el tema en si pueden escribirme a mi correo juanpgarciac@gmail.com, mi twitter @juanpgarciac o en ask.fm http://ask.fm/juanpgarciac Gracias por su atención, no olviden comentar!

Contacto:
www.juanpgarciac.com
juanpgarciac@gmail.com
@juanpgarciac
@solucionesTech




28 de abril de 2010

Apache, Php y Mysql en Windows 7... pain in the ass ?

Buenas nuevamente queridos lectores, aunque no he publicado unos artículos que tenia pensado, decidí dar con este punto clave para cualquier programador que este orientando su trabajo al mundo de las aplicaciones web y tiene el fantabuloso windows 7 (como yo)...


En un articulo previo que hablaba sobre las maquina virtuales, mencione el hecho de "embasurar" un sistema operativo invitado de una maquina virtual, con servidores ó entornos de desarrollo anticuados ó simplemente molestos, para no dañar la bella imagen y estructura de nuestro sistema operativo nativo, pero cuando la necesidad lo merite y necesitas de un servidor http como apache, un lenguaje de programación interpretado como php y un motor de base de datos como mysql, y que todo este batido de mierxxx funcione en  Windows puede tornarse hecatombico, mas aun para un principiante o alguien que se de por vencido rápido con las computadoras.


Ya no se mortifiquen tanto, ayer se me ocurrió migrar este batido de mierxxx de Windows Xp a Windows 7 64bit, y me ha funcionado correctamente, por tanto explicare en par de saltos como lo instale, pero primero como ya es costumbre, el glosario por mi propia lucidez mental de algunos términos inherentes al post que estas leyendo. 


servidor http: es un programa, basado en servicios, procesos o demonios que permiten ejecutar código script, hypertexto, xml, appwebs, etc etc en un servidor dedicado o simplemente a desarrolladores  para visualizar y debuggear paginas web o aplicaciones web.

apache: es un proyecto de software libre que permite realizar lo mencionado arriba, en los sistemas windows y los basados en unix (linux). 

lenguaje de programación interpretado: a diferencia del lenguaje de programación compilado, este es ejecutado mediante un interprete en tiempo real (por script), es ejecutado en un servidor y visualizado en un cliente. 

php: acronimo recursivo de php hypertext pre-processor. un lenguaje interpretado para desarrollo de aplicaciones web, y esta embebido en código html (paginas web).

aplicaciones web: con el desarrollo de nuevas tecnologías informáticas, ya el mundo www, no se limita a mostrarnos paginas de información sino que cada vez mas podemos interactuar con ellas de formas muy dinámicas. es por ellos que cuando ingresamos a una pagina donde hay manejo de data, registros, y procedimientos como lo haría una aplicación instalada en el pc, se conoce como aplicación web. 

motor de bases de datos: como el servidor http se basa en programa, servicios o demonios, pero en este caso para la gestión de bases de datos.

mysql: es un proyecto de software libre de un motor de base de datos, funciona para muchas plataformas, y esta muy diversificado entre la comunidad informática.

Ok, hasta estamos bien de conceptos, procedemos a lo principal de este articulo.
como una receta de cocina primero vamos a necesitar los ingredientes para su preparación asi que esta la lista de los que yo usé:

- Cualquier IDE para Mysql. yo use SQLyog.
- Windows 7 (yo lo hice con windows 64 bit)
- Paciencia, prudencia y un refresquito.
Fíjense que el mysql es de 64bits pero pueden descargarse el de 32 bits (x86) dependiendo sea el caso.. esta instalación funciono para windows 7 32 y 64 bits pero estén pendientes con el binario que se descarguen sea el compatible con el SO. 

Como yo se que ni a mi ni a ustedes nos gusta estar pasando dlls de terceros a la carpeta system32 de windows y esas cosas, como indican en otros tutoriales, este no será el caso, pues solo se instalas los módulos y se modifican ciertos archivos de configuración.

Configurar Apache:

lo primero que vamos a hacer es instalar apache. es muy sencillo pues solo debes darle siguiente siguiente siguiente, pero cuando te pida la ubicación de instalación recomiendo que sea en una carpeta como "C:\apache" ó "C:\httpserver" (asi la tengo yo). y cuando te pida nombre y dirección del servidor y correo del admin del servidor colocas localhost, localhost, admin@localhost respectivamente.

Listo, si todo ha salido bien deberias tener en la carpeta C:\httpserver o como la hayas llamado un montón de archivos y carpetas y en la barra de tareas el icono de apache server con un play verde.

Antes de irnos al archivo de configuración de Apache. Vamos a instalar PHP y Mysql

esto si es mucho mas sencillo solo deber descomprimir el archivo zip de php en una carpeta llamada preferiblemente php y dentro de "c:\httpserver" donde esta instalado el apache.

Igual que apache ejecutamos el instalador de Mysql  y siguiente siguiente siguiente hasta cuando nos pida la direccion de carpetas le colocamos "C:\httpserver\mysql" y luego siguiente->fin.
Paso a seguir, Nos indicara la opción de configurar el mysql le decimos que si y siguiente siguiente siguiente. me gustaria que habilitaran al lado de lo que dice puerto 3066 la opcion de excepcion de firewall, y no olviden colocar contraseña del root.

¿Por qué colocar todo en la misma carpeta? no tiene mucha mas ciencia que mantener un orden en este batido de mierxx, y tener mas claro el direccionamiento de los servidores (http, php y mysql) para la posterior edición de los archivos de configuración. Lo del nombre httpserver, como dije antes es capricho mio, pueden usar cualquier nombre: "pepito" "gomita" "prueba1" "batidodemierxx" , pero como la tengo yo es una forma prudente de llamarlo.

Si todo está bello deberia verse asi:


ok... Ahora si la parte ladilla -> configurar los archivos de configuracion varrrga la rebundancia, de los servidores.

Ok lo primero que vamos a haver es detener el servidor apache, abajo en la barra de tareas en el icono del servidor apache le dan click en stop, y vamos a la carpeta C:\httpserver\conf, copiamos por motivos de precaución el archivo httpd.conf, y luego lo modificamos con el bloc de notas:

- en la parte donde esta los LoadModule agregar al final lo siguiente ->

LoadModule php5_module "C:/httpserver/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/httpserver/php"

Fijense en las direcciones pueden variar dependiendo de las ubicaciones y nombres de las carpetas que le hayan dado.

- Donde está


      DirectoryIndex index.html



 le agregan index.php ->




    DirectoryIndex index.html index.php



Cerramos y guardamos..

Ahora vamos a la carpeta C:\httpserver\php

y copiamos por seguridad el archivo php.ini-development, luego renombramos este por php.ini y lo modificamos con el bloc de notas:

-Donde está esta parte ->

; Directory in which the loadable extensions (modules) reside.

; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"


agregar abajo


extension_dir = "C:/httpserver/php/ext/"

- luego donde estan las extension=php_xxxxxx descomentar las siguientes dos lineas (quitarles el ; que tiene por delante)

extension=php_mysql.dll
extension=php_mysqli.dll
 
Cerrar y guardar.
 
aunque no lo crean falta poco! Ahora necesitamos abrir el host local de windows:
 
-abrimos ejecutar -> y escribimos cmd  y presionamos shift+control+enter (permisos administrativos) ->
y en la pantalla negra y fea de msdos que saldrá escribimos (o pegamos):
 
notepad C:\Windows\System32\drivers\etc\hosts
 
- desconmentamos la linea 127.0.0.1 localhost quitandole el simbolo # que tiene por delante, cerramos y guardamos.
 
Ahora deberia estar mas que listo nuestro servidor http con php y mysql. restauramos el servidor apache dandole click en su icono de la barra de tareas y luego start.
 
abrimos un explorador de internet y escribimos http://localhost/, deberia aparecer una pagina diciendo "it Works", bien probemos el php. vamos a la carpeta "C:\httpserver\htdocs" y creamos un archivo nuevo llamado index.php lo editamos con el bloc de notas y escribimos lo siguente:
 

 
cerramos y guardamos. ahora en el explorador colocamos la dirección http://localhost/index.php, si todo esta bello deberiamos ver una página con un monton de información acerca de nuestra configuración php y hemos finalizado la configuración de nuestro servidor.
 
Para desarrollar aplicaciones php existen muchos IDE o entornos de programación, a mí como me gusta el código uso netbeans con plugin php, pero para no matarse codificando y diseñando también se encuentran el php editor y el famoso dreamweaver, entre muchisimos más.
 
espero que les haya sido útil esta información y por favor cualquier dato, sugerencia, pregunta o critica, pueden usar los medios previstos para el feedback bloguero de comunicación conmigo, como el www.formspring.me/juanpgarciac o mi twitter www.twitter.com/juanpgarciac o comentando aqui abajito.