SlideShare una empresa de Scribd logo
1 de 24
UNIDAD 3 AJAX 
Ingeniería en Sistemas Computacionales 
Antonio Álvarez de la Rocha 
Campos Muñoz Iosdy Gisela 
1
Objetivo de la Actividad: 
Entender y exponer conceptos y ejemplos relacionados con AJAX. 
2 
•Agenda 
13 - Mostrar un gif animado mientras se envían y reciben los 
datos del servidor. 
14- Paginación con AJAX 
15-Cargar un control de tipo select
3 
• Hasta ahora mientras se actualiza la página mostramos 
un texto: 'Procesando...', es muy común utilizar un gif 
animado que represente tal operación.
4 
• Haremos una serie de paginas que nos permitan enviar los datos 
cargados en un formulario al servidor en forma asíncrona y 
mostraremos un gif animado mientras dura el envió de datos.
Código HTML 
5 
<html> 
<head> 
<title>Problema</title> 
<script src="funciones.js" language="JavaScript"></script> 
</head> 
<body> 
<form action="pagina1.php" method="post" id="formulario"> Nombre:<input type="text" 
name="nombre" id="nombre" size="20"><br> 
Comentarios:<br> 
<textarea name="comentarios" id="comentarios" rows="10" cols="50"></textarea><br> 
<input type="submit" value="Enviar" id="enviar"> 
<span id="resultados"></span><br> 
<a href="comentarios.txt">Ver resultados</a> 
</form> 
</body> 
</html>
Código Java Script 
addEvent(window,'load',inicializarEventos,false); 
function inicializarEventos() 
{ 
var ref=document.getElementById('formulario'); 
addEvent(ref,'submit',enviarDatos,false); 
} 
function enviarDatos(e) 
{ 
if (window.event) 
window.event.returnValue=false; 
else 
if (e) 
e.preventDefault(); 
enviarFormulario(); 
} 
function retornarDatos() 
{ 
var cad=''; 
var nom=document.getElementById('nombre').value; 
var com=document.getElementById('comentarios').value; 
cad='nombre='+encodeURIComponent(nom)+'&comentarios='+encodeURIComponent(com); 
return cad; } 
6
7 
var conexion1; 
function enviarFormulario() 
{ 
conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; 
conexion1.open('POST','pagina1.php', true); conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
conexion1.send(retornarDatos()); 
} 
function procesarEventos() 
{ 
var resultados = document.getElementById("resultados"); if(conexion1.readyState == 4) 
{ 
if (conexion1.status==200) 
resultados.innerHTML = 'Gracias.'; 
Else 
alert(conexion1.statusText); 
} 
else 
{ 
resultados.innerHTML = '<img src="../cargando.gif">'; 
} 
} 
//*************************************** //Funciones comunes a todos los problemas 
//*************************************** function addEvent(elemento,nomevento,funcion,captura) 
{ 
if (elemento.attachEvent) 
{ 
elemento.attachEvent('on'+nomevento,funcion); 
return true; 
} 
Else 
if (elemento.addEventListener) 
{
PHP 
• <?php 
• header('Content-Type: text/html; charset=ISO-8859-1'); 
$ar=fopen("comentarios.txt","a") or 
• die("No se pudo abrir el archivo"); 
fputs($ar,"Nombre:".$_REQUEST['nombre']."n"); 
fputs($ar,"Comentarios:".$_REQUEST['comentarios']."nn"); 
• fclose($ar); 
• sleep(1); 
• ?> 
8
Ejemplo de Gif Animado. 
9
14. Paginación con AJAX 
10 
• Un lugar donde puede ayudar el uso de AJAX es en la 
paginación de datos mientras otro recurso en la página se está 
ejecutando. Confeccionaremos una página que muestre un video 
e inmediatamente en la parte inferior mostraremos los 
comentarios del video paginados. 
• Sin utilizar AJAX estamos obligados a recargar completamente 
la página lo que haría imposible ver el video y recorrer los 
comentarios en forma completa (considerando que solo parte de 
los comentarios están en la página)
Ejemplo de paginación. 
11 
• Una pagina que muestre un video e inmediatamente en la parte 
inferior muestre los comentarios del video paginado. Actualizar los 
datos de forma asíncrona.
12 
• <html> 
• <head> 
• <title>Problema</title> 
• <script src="funciones.js" language="JavaScript"></script> </head> 
• <body> 
• <object width="425" height="350"><param name="movie" 
value="http://www.youtube.com/v/60og9gwKh1o"></param><param name="wmode" 
value="transparent"></param><embed src="http://www.youtube.com/v/60og9gwKh1o" 
type="application/x-shockwave-flash" 
• wmode="transparent" width="425" height="350"></embed></object> 
• <br> 
• <div id="detalles"> 
• </div> 
• </body> 
• </html>
• addEvent(window,'load',inicializarEventos,false); 
function inicializarEventos() 
{ 
cargarPagina('pagina2.php'); 
} 
function presionEnlace(e) 
{ 
if (window.event) 
{ 
window.event.returnValue=false; 
var url=window.event.srcElement.getAttribute('href'); cargarPagina(url); 
} 
else 
if (e) 
{ 
e.preventDefault(); 
var url=e.target.getAttribute('href'); 
cargarPagina(url); 
} 
} 
13
Código PHP 
• var conexion1; 
• function cargarPagina(url) 
• { 
• if(url=='') 
• { return; 
• } 
• conexion1=crearXMLHttpRequest(); 
conexion1.onreadystatechange = procesarEventos; 
conexion1.open("GET", url, true); conexion1.send(null); 
• } 
14
Ejemplo. 
15
15.Cargar un control de tipo select 
16 
• Confeccionaremos un problema que contenga dos controles de 
tipo select. En el primero almacenaremos una lista de carreras 
de estudio ("Analista de Sistemas", "Telecomunicaciones" y 
"WebMaster") 
• Cuando se seleccione una carrera enviaremos una petición al 
servidor para que retorne todas las materias que tiene esa carrera 
y procederemos a la carga del segundo select.
Código HTML 
• <script src="funciones.js" language="JavaScript"></script> 
• </head> 
• <body> 
• <h1>Prueba de cargar un control de tipo select recuperando datos del servidor 
• mediante AJAX</h1> 
• Seleccione la carrera: 
• <select id="carreras" name="carreras"> 
• <option value="0">Seleccionar....</option> 
• <option value="1">Analista de sistemas</option> 
• <option value="2">Telecomunicaciones</option> 
• <option value="3">WebMaster</option> 
• </select><span id="espera"></span><br> 
• Materias de la carrera: 
• <select id="materias" name="materias"> 
• </select><br> 
• </body> 
• </html> 
17
JavaScript 
• addEvent(window,'load',inicializarEventos,false); 
• function inicializarEventos() 
• { 
• var select1=document.getElementById('carreras'); 
• addEvent(select1,'change',mostrarMaterias,false); 
• } 
• var conexion1; 
• function mostrarMaterias(e) 
• { 
• var codigo=document.getElementById('carreras').value; 
• if (codigo!=0) 
• { 
• conexion1=crearXMLHttpRequest(); 
• conexion1.onreadystatechange = procesarEventos; 
• conexion1.open('GET','pagina1.php?cod='+codigo, true); 
• conexion1.send(null); 
• } 
• else 
• { 
• var select2=document.getElementById('materias'); 
• select2.options.length=0; 
• } 
• } 
18
PHP 
• <?php 
• $car=$_REQUEST['cod']; 
• if ($car==1) 
• { 
• $materias=array('Programacion I','Analisis Matematico', 
• 'Estructura de las Organizaciones','Etica Profesional'); 
• } 
• if ($car==2) 
• { 
• $materias=array('Fundamentos de Fisica','Analisis Matematico 1', 
• 'Ingles Tecnico I','Sistemas de Comunicaciones I 
• '); 
• } 
• if ($car==3) 
• { 
• $materias=array('Informatica I','Multimedia I','Bases de Datos'); 
• } 
19
• $xml="<?xml version="1.0"?>n"; 
• $xml.="<materias>n"; 
• for($f=0;$f<count($materias);$f++) 
• { 
• $xml.="<materia>".$materias[$f]."</materia>n"; 
• } 
• $xml.="</materias>n"; 
• header('Content-Type: text/xml'); 
• echo $xml; 
• ?> 
20
Ejemplos. 
21
• Contratiempos presentados al realizar la actividad. 
• Nos salían algunos errores al implementar el código. 
• Tiempo Aproximado de la realización. 
• 10 Horas 
22
Conclusión. 
23 
Uno de los beneficios de AJAX es que es una herramienta 
que viene a revolucionar la interacción con los sitios web.
24

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
 
Presentacion diseño web con jquery
Presentacion diseño web con jqueryPresentacion diseño web con jquery
Presentacion diseño web con jquery
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
 
Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcom
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
 
Creando un jwt token con node.js y express
Creando un jwt token con node.js y expressCreando un jwt token con node.js y express
Creando un jwt token con node.js y express
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendar
 
Los lenguajes de la web
Los lenguajes de la webLos lenguajes de la web
Los lenguajes de la web
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
Clase 10 formularios
Clase 10   formulariosClase 10   formularios
Clase 10 formularios
 
Introducción a AngularJS
Introducción a AngularJSIntroducción a AngularJS
Introducción a AngularJS
 
Creación de directivas personalizadas en AngularJS
Creación de directivas personalizadas en AngularJSCreación de directivas personalizadas en AngularJS
Creación de directivas personalizadas en AngularJS
 
HTML5 Web Workers
HTML5 Web WorkersHTML5 Web Workers
HTML5 Web Workers
 

Similar a AJAX Unidad 3

Similar a AJAX Unidad 3 (20)

Ajax
AjaxAjax
Ajax
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Phonegap
PhonegapPhonegap
Phonegap
 
Curso de HTML5
Curso de HTML5Curso de HTML5
Curso de HTML5
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Ajax
AjaxAjax
Ajax
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
DocumentacióN Del Sitio Web En Xml
DocumentacióN Del Sitio Web En XmlDocumentacióN Del Sitio Web En Xml
DocumentacióN Del Sitio Web En Xml
 
Examen 2° grado primer bimestre
Examen 2° grado primer bimestreExamen 2° grado primer bimestre
Examen 2° grado primer bimestre
 
Jquery
JqueryJquery
Jquery
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
 
Como crear un blog 2 parte
Como crear un blog 2 parteComo crear un blog 2 parte
Como crear un blog 2 parte
 
Intro Jquery
Intro JqueryIntro Jquery
Intro Jquery
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Dom html - java script
Dom   html - java scriptDom   html - java script
Dom html - java script
 
JAVASCRIPT_2.ppt
JAVASCRIPT_2.pptJAVASCRIPT_2.ppt
JAVASCRIPT_2.ppt
 

Último

el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 

Último (20)

el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 

AJAX Unidad 3

  • 1. UNIDAD 3 AJAX Ingeniería en Sistemas Computacionales Antonio Álvarez de la Rocha Campos Muñoz Iosdy Gisela 1
  • 2. Objetivo de la Actividad: Entender y exponer conceptos y ejemplos relacionados con AJAX. 2 •Agenda 13 - Mostrar un gif animado mientras se envían y reciben los datos del servidor. 14- Paginación con AJAX 15-Cargar un control de tipo select
  • 3. 3 • Hasta ahora mientras se actualiza la página mostramos un texto: 'Procesando...', es muy común utilizar un gif animado que represente tal operación.
  • 4. 4 • Haremos una serie de paginas que nos permitan enviar los datos cargados en un formulario al servidor en forma asíncrona y mostraremos un gif animado mientras dura el envió de datos.
  • 5. Código HTML 5 <html> <head> <title>Problema</title> <script src="funciones.js" language="JavaScript"></script> </head> <body> <form action="pagina1.php" method="post" id="formulario"> Nombre:<input type="text" name="nombre" id="nombre" size="20"><br> Comentarios:<br> <textarea name="comentarios" id="comentarios" rows="10" cols="50"></textarea><br> <input type="submit" value="Enviar" id="enviar"> <span id="resultados"></span><br> <a href="comentarios.txt">Ver resultados</a> </form> </body> </html>
  • 6. Código Java Script addEvent(window,'load',inicializarEventos,false); function inicializarEventos() { var ref=document.getElementById('formulario'); addEvent(ref,'submit',enviarDatos,false); } function enviarDatos(e) { if (window.event) window.event.returnValue=false; else if (e) e.preventDefault(); enviarFormulario(); } function retornarDatos() { var cad=''; var nom=document.getElementById('nombre').value; var com=document.getElementById('comentarios').value; cad='nombre='+encodeURIComponent(nom)+'&comentarios='+encodeURIComponent(com); return cad; } 6
  • 7. 7 var conexion1; function enviarFormulario() { conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; conexion1.open('POST','pagina1.php', true); conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); conexion1.send(retornarDatos()); } function procesarEventos() { var resultados = document.getElementById("resultados"); if(conexion1.readyState == 4) { if (conexion1.status==200) resultados.innerHTML = 'Gracias.'; Else alert(conexion1.statusText); } else { resultados.innerHTML = '<img src="../cargando.gif">'; } } //*************************************** //Funciones comunes a todos los problemas //*************************************** function addEvent(elemento,nomevento,funcion,captura) { if (elemento.attachEvent) { elemento.attachEvent('on'+nomevento,funcion); return true; } Else if (elemento.addEventListener) {
  • 8. PHP • <?php • header('Content-Type: text/html; charset=ISO-8859-1'); $ar=fopen("comentarios.txt","a") or • die("No se pudo abrir el archivo"); fputs($ar,"Nombre:".$_REQUEST['nombre']."n"); fputs($ar,"Comentarios:".$_REQUEST['comentarios']."nn"); • fclose($ar); • sleep(1); • ?> 8
  • 9. Ejemplo de Gif Animado. 9
  • 10. 14. Paginación con AJAX 10 • Un lugar donde puede ayudar el uso de AJAX es en la paginación de datos mientras otro recurso en la página se está ejecutando. Confeccionaremos una página que muestre un video e inmediatamente en la parte inferior mostraremos los comentarios del video paginados. • Sin utilizar AJAX estamos obligados a recargar completamente la página lo que haría imposible ver el video y recorrer los comentarios en forma completa (considerando que solo parte de los comentarios están en la página)
  • 11. Ejemplo de paginación. 11 • Una pagina que muestre un video e inmediatamente en la parte inferior muestre los comentarios del video paginado. Actualizar los datos de forma asíncrona.
  • 12. 12 • <html> • <head> • <title>Problema</title> • <script src="funciones.js" language="JavaScript"></script> </head> • <body> • <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/60og9gwKh1o"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/60og9gwKh1o" type="application/x-shockwave-flash" • wmode="transparent" width="425" height="350"></embed></object> • <br> • <div id="detalles"> • </div> • </body> • </html>
  • 13. • addEvent(window,'load',inicializarEventos,false); function inicializarEventos() { cargarPagina('pagina2.php'); } function presionEnlace(e) { if (window.event) { window.event.returnValue=false; var url=window.event.srcElement.getAttribute('href'); cargarPagina(url); } else if (e) { e.preventDefault(); var url=e.target.getAttribute('href'); cargarPagina(url); } } 13
  • 14. Código PHP • var conexion1; • function cargarPagina(url) • { • if(url=='') • { return; • } • conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; conexion1.open("GET", url, true); conexion1.send(null); • } 14
  • 16. 15.Cargar un control de tipo select 16 • Confeccionaremos un problema que contenga dos controles de tipo select. En el primero almacenaremos una lista de carreras de estudio ("Analista de Sistemas", "Telecomunicaciones" y "WebMaster") • Cuando se seleccione una carrera enviaremos una petición al servidor para que retorne todas las materias que tiene esa carrera y procederemos a la carga del segundo select.
  • 17. Código HTML • <script src="funciones.js" language="JavaScript"></script> • </head> • <body> • <h1>Prueba de cargar un control de tipo select recuperando datos del servidor • mediante AJAX</h1> • Seleccione la carrera: • <select id="carreras" name="carreras"> • <option value="0">Seleccionar....</option> • <option value="1">Analista de sistemas</option> • <option value="2">Telecomunicaciones</option> • <option value="3">WebMaster</option> • </select><span id="espera"></span><br> • Materias de la carrera: • <select id="materias" name="materias"> • </select><br> • </body> • </html> 17
  • 18. JavaScript • addEvent(window,'load',inicializarEventos,false); • function inicializarEventos() • { • var select1=document.getElementById('carreras'); • addEvent(select1,'change',mostrarMaterias,false); • } • var conexion1; • function mostrarMaterias(e) • { • var codigo=document.getElementById('carreras').value; • if (codigo!=0) • { • conexion1=crearXMLHttpRequest(); • conexion1.onreadystatechange = procesarEventos; • conexion1.open('GET','pagina1.php?cod='+codigo, true); • conexion1.send(null); • } • else • { • var select2=document.getElementById('materias'); • select2.options.length=0; • } • } 18
  • 19. PHP • <?php • $car=$_REQUEST['cod']; • if ($car==1) • { • $materias=array('Programacion I','Analisis Matematico', • 'Estructura de las Organizaciones','Etica Profesional'); • } • if ($car==2) • { • $materias=array('Fundamentos de Fisica','Analisis Matematico 1', • 'Ingles Tecnico I','Sistemas de Comunicaciones I • '); • } • if ($car==3) • { • $materias=array('Informatica I','Multimedia I','Bases de Datos'); • } 19
  • 20. • $xml="<?xml version="1.0"?>n"; • $xml.="<materias>n"; • for($f=0;$f<count($materias);$f++) • { • $xml.="<materia>".$materias[$f]."</materia>n"; • } • $xml.="</materias>n"; • header('Content-Type: text/xml'); • echo $xml; • ?> 20
  • 22. • Contratiempos presentados al realizar la actividad. • Nos salían algunos errores al implementar el código. • Tiempo Aproximado de la realización. • 10 Horas 22
  • 23. Conclusión. 23 Uno de los beneficios de AJAX es que es una herramienta que viene a revolucionar la interacción con los sitios web.
  • 24. 24