Taller Programación WEB Ajax con JQuery Aplicaciones RIA Rich Internet       Aplication (Aplicaciones de internet enriquec...
Creación de una base de datos. Para crear una base de datos se debe tenerpermiso para poder crear base de datos en el serv...
int mysql_close ( [int identificador_de_enlace]) Devuelve: verdadero si éxito, falsosi error. mysql_close() cierra el enla...
Objeto XMLHttpRequest:El uso de objetos XMLHttpRequest para la comunicación navegador-servidor.Una de las restricciones qu...
Los métodos más importantes son open y send.El método open prepara la conexión con el servidor. Para ello se le pasa la UR...
de procesar las respuestas, es mediante el objeto DOM, ya que puede serrecorrido a través de los métodos estandarizados po...
Seguridad:Por motivos de seguridad, no se puede acceder a los ficheros locales a través delprotocolo file:// sin tener que...
Script para crear la tabla es el siguiente:Con esto tendremos lista la base de datos y la tabla a utilizar en la práctica....
A.- Alta de registros con Ajax utilizando JavaScript (Estructura de la subcarpetapara el modulo de ALTAS)1.- El archivo “i...
2.- Código del archivo “ajax.js”
El   método     sleep  del   archivo     “registro.php”  hace   llamada   aldivResultado.innerHTML= <img src="anim.gif">; ...
A cada caja de texto del formulario le asignamos a una variable php líneas 4-7, yla función sleep manipula la imagen que s...
Imagen de visualización del resultado de la inserción del registroB.- Eliminar registro con Ajax utilizando JavaScript (Es...
1.- El archivo “index.php”, carga al archivo “ajax.js línea 4 del código” el cualmanipula el registro a eliminar.El formul...
3.- Archivo “cClientes.php” el cual es la clase Cliente con los atributos, y unafunción para consultar un cliente por su i...
Pruebas:Pulsar click sobre el ID del registro que desea eliminarC.- El proceso de modificación es similar en el sentido qu...
D.- El filtrado se realiza pulsado click sobre el nombre del campo a filtrar y losfiltros son en orden ascendente o descen...
Tema: PHP y ajax con jQueryEstructura general del proyecto:El archivo clase.php contiene la lógica de conexión a la base d...
Se declaran los atributos de la clase, donde cada atributo corresponde a unnombre de los campos de la tabla clientes. Y es...
1.- El método getClientes() realiza una consulta general de todos losregistros existentes en la tabal clientesv2.- El méto...
“$this->varnombre”, es un apuntador de la variable nombre que apunta alcampo nombre de la tabla cleintesv, lo mismo sucede...
identificamos con una f para identificarlos que son los valores contenidos en elformulario, para este caso los nombres son...
En la ruta “C:wampwwwTallerRIAresources”, están los archivos de la hoja deestilo del díselo web y lo librería JQuery “jque...
Si nuestro campo en el formulario es otro debe cambiarse en este script por elnuevo nombre.Ejemplo si cambiamos los datos ...
El archivo “clientesGrid.php”, imprime la consulta general de los registroscontenidos en la base de datos
Pruebas:Módulo principal de la pagina inicialMódulo de altas de clientesMódulo de edición y eliminar datosCódigo fuente y ...
Página con conceptos bien detallados y ejemploManual Ajaxhttp://es.scribd.com/doc/56560687/23/Constructor-del-objeto-XMLHt...
Upcoming SlideShare
Loading in …5
×

Taller programación web ajax con jquery

3,897 views

Published on

Curso practico PHP y ajax

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,897
On SlideShare
0
From Embeds
0
Number of Embeds
50
Actions
Shares
0
Downloads
228
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Taller programación web ajax con jquery

  1. 1. Taller Programación WEB Ajax con JQuery Aplicaciones RIA Rich Internet Aplication (Aplicaciones de internet enriquecidas o mejoradas)Objetivos  Introducir al estudiante con el acceso a base de datos y el manejo con PHP.  Dar a conocer la sintaxis básica de PHP con MySql.  Mostrar la forma en que puede conectarse a una base de datos para manipular registros.  Implementar tecnología Ajax con JavaScript y jQueryPresentaciónEl presente tutorial es un curso de programación PHP – MySQL completo desdecero para principiante en el que se tratan tanto los fundamentos teóricos de losdos lenguajes con multitud de ejemplos prácticos comentados y elaborados paso apaso en los es útil si estas empezando desde cero hasta dominar la creación deaplicaciones dinámicas en primer paso implementado JavaScript para Ajax y unsegundo tema utilizando el framework jQuery para el mantenimiento de datos.IntroducciónPara agregar, acceder y procesar los datos almacenados en una base datoscomputacional, se necesita un sistema administrador de base de datos tal comoMySql. El SQL (Standard Query Language) forma parte del MySql, conocido comoLenguaje de consultas estructurado, es el lenguaje estandarizado más comúnpara acceder a base de datos.Conexión al servidor MySql. Para conectarse al servidor, generalmente senecesita proveer a MySql un nombre de usuario, y un password. Si el servidorcorre en una máquina distinta a la que se está utilizando se debe especificar elnombre del host (máquina).
  2. 2. Creación de una base de datos. Para crear una base de datos se debe tenerpermiso para poder crear base de datos en el servidor MySql, si se tiene elpermiso.Funciones de PHP que se utilizan para interactuar con bases de datosMySQLmysql_connect -- Abre una conexión a un servidor MySQLint mysql_connect ( [string server [, string usuario [, string password]]])Devuelve: Un identificador de enlace positivo si tiene éxito, o falso si error.mysql_connect() establece una conexión a un servidor MySQL. Todoslos argumentos son opcionales, y si no hay, se asumen los valores por defecto(localhost, usuario propietario del proceso del servidor, password vacía).El hostname puede incluir también un número de puerto. ej. "hostname:puerto"o un camino al socket ej. ":/camino/al/socket" para localhost.En el caso de que se haga una llamada a mysql_connect() con los mismosargumentos, no se establecerá un nuevo enlace, sino que se devolverá elenlace ya abierto. El enlace al servidor será cerrado tan pronto como laejecución del script finalice, amenos que se cierre antes explícitamentemysql_select_db -- Selecciona un base de datos MySQLint mysql_select_db ( string base_de_datos [, int identificador_de_enlace])Devuelve: TRUE si éxito, FALSE si error. mysql_select_db() establece la baseactiva que estará asociada con el identificador de enlace especificado. Si nose especifica un identificador de enlace, se asume el último enlace abierto.mysql_query() devuelve TRUE (no-cero) o FALSE para indicar si la sentenciase ha ejecutado correctamente o no. Un valor TRUE significa que la sentencia eracorrecta y pudo ser ejecutada en el servidor. No indica nada sobre el númerode fila devueltas. Es perfectamente posible que la sentencia se ejecutecorrectamente pero que no devuelve ninguna fila.mysql_fetch_array -- Extrae la fila de resultado como una matriz asociativaarray mysql_fetch_array ( int id_resultado [, int tipo_de_resultado]) Devuelveuna matriz que corresponde a la sentencia extraída, o falso si no quedanmás filas. mysql_fetch_array() es una versión extendida de mysql_fetch_row().Además de guardar los datos en el índice numérico de la matriz, guardatambién los datos en los índices asociativos, usando el nombre de campocomo clave. Si dos o más columnas del resultado tienen el mismo nombre decampo, la última columna toma la prioridad. Para acceder a la(s) otra(s)columna(s) con el mismo nombre, se debe especificar el índice numérico odefinir un alias para la columna.mysql_free_result -- Libera la memoria del resultadoint mysql_free_result ( int id_resultado) mysql_free_result() solo necesita serllamada si te preocupa usar demasiado memoria durante la ejecución de tu script.Toda la memoria del resultado especificado en el parámetro del identificadorde resultado será automáticamente liberada. Por razones de compatibilidadpuede usarse también mysql_freeresult().mysql_close -- cierra el enlace con MySQL
  3. 3. int mysql_close ( [int identificador_de_enlace]) Devuelve: verdadero si éxito, falsosi error. mysql_close() cierra el enlace con la base MySQL que está asociada con elidentificador de enlace especificado. Si no se especifica el identificador deenlace, se asume por defecto el último enlace.Nota: Normalmente no es necesario ya que las aperturas no-persistentes soncerradas automáticamente al final de la ejecución del script.mysql_affected_rows -- Devuelve el número de filas afectadas de la últimaoperación MySQLint mysql_affected_rows ( [int identificador_de_enlace])mysql_affected_rows() devuelve el número de filas afectadas en la últimasentencia INSERT, UPDATE o DELETE sobre el servidor asociado conel identificador de enlace especificado. Si el identificador de enlace no ha sidoespecificado, se asume por defecto el último enlace. Si la última sentencia fueun DELETE sin clausula WHERE, todos los registros han sido borrados de latabla pero esta función devolverá cero. Este comando no es efectivo para lassentencias SELECT, sino sólo para las sentencias que modifican registros.Para conseguir el número de líneas devueltos por un SELECT, usarmysql_num_rows().mysql_num_rows -- Devuelve el numero de filas de un resultadoint mysql_num_rows ( int id_resultado) mysql_num_rows() Devuelve elnumero de filas de un identificador de resultado.Definiciones:Ajax:Ajax se refiera a “Asincronía + Javascript + CSS + DOM + XMLHttpRequest”al momento de conversar con los clientes. Siendo el lenguaje Javascript y ellenguaje XML por medio de la Asincronía, los que forman el fuerte de AJAX,los cuales se detallaran a lo largo del texto.El motor AJAX permite que la interacción del usuario con la aplicación ocurraasincrónicamente, con esto se refiere a la comunicación independiente con elservidor; por lo que de esta manera el usuario generalmente no visualizara unaventana blanca en el navegador, a la espera de respuesta de parte del servidor.JQueryjQuery es una librería de Javascript que permite mantener el código de una páginade manera simple y concisa manejando algunas de las complejidades que se dancon DOM y con la interacción de AJAX. jQuery incluye plugins opcionales quecontienen funciones comunes para DOM, Eventos, Efectos y AJAX.jQuery es un simple y liviano archivo de Javascript (ronda los 16 Kbytes) que seagrega a la cabecera de los documentos. Provee una increíble cantidad demétodos de utilidad para lograr tareas web específicas.
  4. 4. Objeto XMLHttpRequest:El uso de objetos XMLHttpRequest para la comunicación navegador-servidor.Una de las restricciones que presenta Javascript, es que carece de unmecanismo portátil para la comunicación de red en general, pero el objetoXMLHttpRequest, el cual es soportado por la mayoría de los navegadores queaceptan Javascript, puede realizar llamadas a su servidor de origen y obtener losresultados. Lo cual permite realizar minuciosas llamadas al servidor y manejar lasrespuestas como se desee, al contrario de los formularios convencionales, que alser enviados provocan que la página se actualice completamente.Las aplicaciones AJAX requieren que los mensajes sean transmitidos en ambossentidos (desde el navegador hacia el servidor y viceversa); y además que tanto elnavegador como el servidor tengan acceso al mensaje, esto se refiere a que elformato pueda ser accesible fácilmente en Javascript así como cualquier otrolenguaje que se utilice del lado del servidor. El recurso que en este caso ofrece esel de pasar los mensaje entre navegador y el servidor en formato XML. Es posiblepasar XML en ambas direcciones: del lado del servidor, es una forma común dedescribir los datos estructurados como texto; y del lado del navegador, lasaplicaciones pueden descargar el XML con una llamada XMLHttpRequest paraanalizarlo de diferentes maneras. En el caso que el navegador necesite subiralgún dato complejo, resulta fácil serializar el dato como un XML y subirlo en elcuerpo de una llamada XMLHttpRequest.La forma de crear una instancia de este objeto en cualquier navegador es:var req = new XMLHttpRequest();y en Microsoft Internet Explorer depende de ActiveX:var req = new ActiveXObject("Microsoft.XMLHTTP");Métodos:Los métodos de un objeto XMLHttpRequest son los siguientes:  abort(): Aborta la petición actual.  getAllResponseHeaders(): Devuelve todas las cabeceras (etiquetas y valores) como un string.  getResponseHeader("headerLabel"): Devuelve el valor de la cabecera etiquetada como headerLabel.  open("method", "URL"[, asyncFlag[, "userName"[, "password"]]]): Abre una conexión a una URL, con un método HTTP (get o post), y otros parámetros opcionales.  send(content): Envía la petición. Suele ser un String o un objeto DOM  setRequestHeader("label", "value"): Crea un par etiqueta/valor para ser enviado en la cabecera de la petición.
  5. 5. Los métodos más importantes son open y send.El método open prepara la conexión con el servidor. Para ello se le pasa la URL -absoluta o relativa - y el método HTTP, get o post, según si se recibe o se envíadatos.Por defecto, la conexión es asíncrona, es decir, la petición se realiza al servidor yel usuario puede seguir interactuando con la página sin que se dé cuenta. Si sequiere una conexión síncrona, se debe utilizar el parámetro asyncFlag=false, loque hará que el navegador quede parado hasta recibir la respuesta del servidor.Esto es peligroso porque puede dejar colgado al navegador si hay algún tipo deerror, por lo que se aconseja siempre utilizar conexiones asíncronas.PropiedadesLas propiedades del objeto XMLHttpRequest son las siguientes:  onreadystatechange: Guarda el nombre de la función Javascript que manejará los cambios de estado en la petición.  readyState: Entero que codifica el estado actual de la petición o 0 = No Inicializado o 1 = Cargando o 2 = Cargado o 3 = Interactuando o 4 = Completado  responseText: Versión en forma de String de los datos devueltos por el servidor.  responseXML: Objeto DOM compatible de la respuesta del servidor.  status: Código de estado devuelto por el servidor, como 404 para No encontrado o 200 para Ok.  statusText: Mensaje que acompaña al código de estado.De estas propiedades, las más importantes on onreadystatechange, readyState,y la respuesta responseText / responseXML.La primera, onreadystatechange, sirve para asociar el método Javascript quehayamos escrito para gestionar los cambios de estado de la petición. Es decir,como es una comunicación asíncrona, se necesita tener un método implementadopor nosotros que gestione los diferentes eventos, como por ejemplo, la llegada dela respuesta. Esta es la propiedad que sirve para decirle a XMLHttpRequest elnombre de ese método.La segunda, readyState, es un número que informa del estado de la petición. Elestado más interesante es el número 4, que recoge el momento en el que llega larespuesta del servidor para poder procesarla.La respuesta viene en dos versiones diferentes: Una en un texto normal,almacenada en la propiedad responseText; y otra en un objeto estándar DOM,almacenado en la propiedad responseXML. Lógicamente, el medio más poderoso
  6. 6. de procesar las respuestas, es mediante el objeto DOM, ya que puede serrecorrido a través de los métodos estandarizados por la W3C DOM. Date cuentaque este DOM es un documento en XML, no en HTML.Código generalSabiendo todo esto, podemos crear una función genérica para realizar unapetición:var req;function loadXMLDoc(url) { req = false; // parte para cualquier navegador if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // parte para Internet Explorer / ActiveX } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } if(req) { req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(""); }}Y otra función para procesar las respuestas:function processReqChange() { if (req.readyState == 4) { if (req.status == 200) { // ...Aquí irían la lógica necesaria } else { alert("Error recibiendo datos XML:n" + req.statusText); } }}
  7. 7. Seguridad:Por motivos de seguridad, no se puede acceder a los ficheros locales a través delprotocolo file:// sin tener que lidiar con configuraciones. Debido a esto no sepueden hacer test de páginas locales directamente, y lo mejor es instalar unservidor HTTP como Apache y hacer conexiones http://localhost/.También, el dominio de la dirección del servidor ha de ser el mismo que el de lapágina que contiene el script que realiza la petición.Figura de un objeto XMLHttpRequest es una instancia de una API que nospermite la transferencia de datos en formato XML desde los script del navegador (JavaScript, JScrip, VBScript ... ) a los del servidor ( PHP, Perl, ASp, Java ... ) einversamente.ContenidoEl conjunto de procedimientos descritos a continuación representan elcomplemento básico para el desarrollo de aplicaciones Web en PHP y sobre elmanejo de una base de datos específica. En esta sesión abordaremos el temarelacionado al manejo de registros de datos efectuando un mantenimiento clásicode registros para esto utilizamos una Base de Datos llamada “sofliseoane”(creada con phpMyAdmin) y dentro de ella hemos diseñado la tabla clientesv conla siguiente estructura:
  8. 8. Script para crear la tabla es el siguiente:Con esto tendremos lista la base de datos y la tabla a utilizar en la práctica.Mostraré el esquema de la aplicación, para un mayor entendimiento cuando lesexplico.Tema: PHP y ajax utilizando JavaScriptAhora haremos la parte PHP que es lo mas rápido tiene un archivo denominadoconexion.php en cada una de las subcarpetas (ALTAS, BAJAS, CAMBIO, FILTAR)en el cual configuramos la conexión a la base de datos Mysql.
  9. 9. A.- Alta de registros con Ajax utilizando JavaScript (Estructura de la subcarpetapara el modulo de ALTAS)1.- El archivo “index.php”, es el formulario en el cual se ingresan los datos delcliente que será dado de alta, este archivo carga al archivo “ajax.js línea 4 delcódigo” el cual manipula los datos ingresados en el formulario “<formname="nuevo_cliente">” mediante el método “enviarDatosCliente() línea 7 delcódigo”.
  10. 10. 2.- Código del archivo “ajax.js”
  11. 11. El método sleep del archivo “registro.php” hace llamada aldivResultado.innerHTML= <img src="anim.gif">; y se activa la animación pormedio de la imagen “="anim.gif"”, línea 21Asignamos los datos leídos del formulario() a las variables declaradas en elarchivo “ajax.js”:“ajaxnombre=document.nuevo_cliente.fnombre.value;ajaxapellido=document.nuevo_cliente.fapellido.value;ajaxfecha_nac=document.nuevo_cliente.ffecha_nac.value;ajaxpeso=document.nuevo_cliente.fpeso.value;”Líneas 24-27Se envían los datos al archivo “registro.php” para almacenar el registro a la tabla//archivo que realizará la operacion //registro.php ajax.open("POST", "registro.php",true);Línea 32Se limpian los campos del formulario con la función declarado en las líneas 49-54//llamar a funcion para limpiar los inputs LimpiarCampos();Línea 40Asignamos las valores de los cajas de texto a las variables ajax para enviarlos//enviando los valoresajax.send("fnombre="+ajaxnombre+"&fapellido="+ajaxapellido+"&ffecha_nac="+ajaxfecha_nac+"&fpeso="+ajaxpeso)Línea 463.-Archivo “registro.php”
  12. 12. A cada caja de texto del formulario le asignamos a una variable php líneas 4-7, yla función sleep manipula la imagen que se visualiza al cargar los datos.Los datos son enviados (a la clase “cClientes.php” ) y validados mediante la línea11 “if ($objcliente->crear($varnombre,$varapellido,$varfecha_nac,$varpeso)==true){“3.- El archivo “cClientes.php”, es un archivo de clase con los atributos de laclase cliente:La función crear líneas 22-32, recibe los datos del nuevo objeto cliente y losinserta a la tabla “clientesv” de acuerdo a los variables php($varnombre,$varapellido,$varfecha_nac,$varpeso) recibidas en el archivo delarchivo “registro.php”Pruebas:Imagen de captura de datos y animación de la imagen al pulsar click sobre elbotón Grabar
  13. 13. Imagen de visualización del resultado de la inserción del registroB.- Eliminar registro con Ajax utilizando JavaScript (Estructura de la subcarpetapara el modulo de BAJAS)
  14. 14. 1.- El archivo “index.php”, carga al archivo “ajax.js línea 4 del código” el cualmanipula el registro a eliminar.El formulario que visualiza los registros existentes en la tabla “clientes” haciendouna llamada al archivo “consulta.php” líneas 12-14,2.- El archivo “consulta.php”, mediante el evento onclick llama la funcióneliminarDato(), que tiene como parámetro de entrada el ID del cliente y se envíaal archivo “ajax.js” línea 30 donde captura el id y se asigna a la variable“ajaxidclie” y ejecuta el archivo “eliminacion.php”
  15. 15. 3.- Archivo “cClientes.php” el cual es la clase Cliente con los atributos, y unafunción para consultar un cliente por su id y otra función para eliminar un cliente deacuerdo al id seleccionado de la tabla.
  16. 16. Pruebas:Pulsar click sobre el ID del registro que desea eliminarC.- El proceso de modificación es similar en el sentido que se debe pulsar clicksobre el Id del registro a Modificar y este Id es enviado al archivo “ajax.js”,mediante el evento onclick de la funcion PedirDatos(), del archivo”consulta.php“, que tiene como parámetro el ID y rellena el formulario con losdatos del cliente a Editar invocando al archivo “consulta_por_id.php” yenviando los datos actualizados con la función enviarDatosCliente() del archivo“ajax.js”
  17. 17. D.- El filtrado se realiza pulsado click sobre el nombre del campo a filtrar y losfiltros son en orden ascendente o descendente
  18. 18. Tema: PHP y ajax con jQueryEstructura general del proyecto:El archivo clase.php contiene la lógica de conexión a la base de datos y losmétodos para realizar inserciones a la tabla clientesv por medio de una clase PHPque manipula la lógica de negocio a través de las variables:
  19. 19. Se declaran los atributos de la clase, donde cada atributo corresponde a unnombre de los campos de la tabla clientes. Y estas variables se llaman var$var_nombre_campo; para identificarlos que son variables de clase.Con los métodos siguientes obtenemos los valores en la tabla “clientes” paramanipularlos:Con los métodos siguientes insertamos ó modificamos los valores en la tabla“clientes” para manipularlos:Para el mantenimiento de datos utilizamos métodos concretos que realizan unquery a la base de datos y ejecutan la acción correspondiente dentro del método
  20. 20. 1.- El método getClientes() realiza una consulta general de todos losregistros existentes en la tabal clientesv2.- El método updateCliente() actualiza el cliente cargado en los atributosComentarios:Observar en línea de la imagen anterior de código la instrucción:“nombre=$this->varnombre”, es un apuntador de la variable nombre quetiene como referencia el campo nombre de la tabla cleintesv, lo mismosucede para cado uno de los campos de la tabla.3.- El método insertCliente(), inserta el cliente cargado en los atributos a latabla “clientes”Comentarios:Observar en línea de la imagen anterior de código la instrucción:
  21. 21. “$this->varnombre”, es un apuntador de la variable nombre que apunta alcampo nombre de la tabla cleintesv, lo mismo sucede para cado uno de loscampos de la tabla.4.-El método delete() es el encargado de eliminar un registro dentro de latabla clienetsvEl archivo index.php contiene la vista que se muestra l usuario y valida lasacciones a tomar de acuerdo a un case:Para cada acción carga un archivo diferente ubicado en la carpeta de templates,por ejemplo si la acción seleccionada es : case refreshGrid: busca en la carpetatemplates su código correspondiente y esto en la línea: $view->contentTemplate="templates/clientesGrid.php";El archivo “clientForm.php”, es el diseño del formulario para inserción omodificación de los campos de la tabla clientes y cada caja de texto la
  22. 22. identificamos con una f para identificarlos que son los valores contenidos en elformulario, para este caso los nombres son: id="fnombre", id="fapellido",id="ffecha", y id="fpeso"La instrucción value = "<?php print $view->client->getNombre() ?>", imprime elvalor obtenido por el método getNombre(), este método es del archivo “clase.php“.
  23. 23. En la ruta “C:wampwwwTallerRIAresources”, están los archivos de la hoja deestilo del díselo web y lo librería JQuery “jquery-1.7.1.min.js”El script “functions.js” el cual se encarga de manipular los datos del formulariocon las etiquetas params.id=$(#fid).val(); esto para cada objeto del formulario y leproporciona el método asíncrono a través de JQuery y se hacen validaciones paracada campo :
  24. 24. Si nuestro campo en el formulario es otro debe cambiarse en este script por elnuevo nombre.Ejemplo si cambiamos los datos del formularioCambiar los campos en el script “functions.js”El archivo “layout.php” es el encargado de cargar las librerías necesarias y lashojas de estilos
  25. 25. El archivo “clientesGrid.php”, imprime la consulta general de los registroscontenidos en la base de datos
  26. 26. Pruebas:Módulo principal de la pagina inicialMódulo de altas de clientesMódulo de edición y eliminar datosCódigo fuente y base de datos:http://www.mediafire.com/?ypdutvruuwa2oi4Referencias bibliográficas:http://aprendeweb.16mb.com/avanzados/ajax/ajax_1.php
  27. 27. Página con conceptos bien detallados y ejemploManual Ajaxhttp://es.scribd.com/doc/56560687/23/Constructor-del-objeto-XMLHttpRequesthttp://es.scribd.com/doc/16425657/Tutorial-AJAX-espanol-parte-1http://es.scribd.com/doc/86539/Ajax-Manual-Spanishhttp://es.scribd.com/doc/44612279/Ajax-un-juego-de-ninoshttp://es.scribd.com/doc/39270394/Manual-AjaxLibro completo de Ajax en formato PDFhttp://www.librosweb.es/ajax/pdf/Ajax web 2.0 para profesionales Código Fuente del Librohttp://www.libroajax.com/codigo.htmlValidaciones con JQueryhttp://www.jmocana.eu/2009/02/09/validaciones-con-jquery/http://www.actualidadjquery.es/2010/10/25/formulario-con-validacion-de-campos-en-jquery/http://web.tursos.com/tutoriales/javascript/como-hacer-un-formulario-de-contacto-ii-validar-con-jqueryhttp://www.masquewordpress.com/7-codigos-jquery-que-todos-deberian-tener/#Entrevista a Maximiliano Firtmanhttp://www.maestrosdelweb.com/editorial/maximiliano-firtman/

×