unidad iii ajax

33
Unidad III AJAX INTEGRANTES: MIGUEL ANTONIO VÁZQUEZ MONTES 10410562 PEDRO ALEXANDER BALBUENA LOREDO 10410518 1

Upload: pared1616

Post on 04-Jul-2015

61 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Unidad iii ajax

Unidad III AJAXINTEGRANTES:MIGUEL ANTONIO VÁZQUEZ MONTES 10410562

PEDRO ALEXANDER BALBUENA LOREDO 10410518

1

Page 2: Unidad iii ajax

22 - De JavaScript a JSON

(utilizando la librería json.js)

Librería Javascript.

Permite convertir objeto o array de

javascript a formato json y viceversa.

2

Page 3: Unidad iii ajax

Archivos importados

<script src="../json.js" language="JavaScript"></script>

<script src="funciones.js" language="JavaScript"></script>

3

Page 4: Unidad iii ajax

function

mostrarConversion(e)

{

var obj={

nombre:'juan',

edad:25,

sueldos:[1200,1700,1990]

};

var

cadena=obj.toJSONString();

alert(cadena);

}

4

Page 5: Unidad iii ajax

function

mostrarConversion(e)

{

var obj={

nombre:'juan',

edad:25,

sueldos:[1200,1700,1990]

};

var

cadena=obj.toJSONString();

alert(cadena);

}

Primero se define un

objeto en JavaScript

Se llama el método

JSONString para que

retorne un objeto en

formato JSON

5

Page 6: Unidad iii ajax

Ejercicio JSON

Ejercicio

6

Page 7: Unidad iii ajax

23 - De JSON a JavaScript

(utilizando la librería json.js)

7

Page 8: Unidad iii ajax

8

Page 9: Unidad iii ajax

9

Page 10: Unidad iii ajax

<?php

$conexion=mysql_connect("localhost","root","z80")

or die("Problemas en la conexion");mysql_select_db("bdajax",$conexion) or

die("Problemas en la seleccion de la base de datos");

$registros=mysql_query("select codigo,descripcion,precio from

perifericos",$conexion)

or die("Problemas en el select".mysql_error());

while ($reg=mysql_fetch_array($registros))

{

$vec[]=$reg;}

require('../JSON.php');

$json=new Services_JSON();

$cad=$json->encode($vec);

echo $cad;?>

10

Page 11: Unidad iii ajax

11

Page 12: Unidad iii ajax

12

Page 13: Unidad iii ajax

13

Page 14: Unidad iii ajax

De JSON a PHP (utilizando

la librería JSON.php)AHORA NOS QUEDA VER COMO EN EL SERVIDOR RECIBIR DATOS CON

FORMATO JSON Y PROCEDER A GENERAR UNA CLASE EN PHP MEDIANTE

LA LIBRERÍA JSON.PHP.

LA SINTAXIS ES:

$JSON=NEW SERVICES_JSON();

$CAD=$JSON->DECODE(STRIPSLASHES($_REQUEST['CADENA']));

ECHO 'NOMBRE:'.$CAD->NOMBRE;

...

...

14

Page 15: Unidad iii ajax

la clase Services_JSON tiene un método llamado decode que recibe como

parámetro una cadena con datos codificados en JSON y procede a retornar la

información en un objeto.

15

Page 16: Unidad iii ajax

Ejemplo:

Confeccionaremos un problema que envíe desde el navegador información en

formato JSON y en el servidor la convertiremos en un objeto de PHP y

procederemos a generar un trozo de HTML que retornaremos al navegador

para que lo muestre.

16

Page 17: Unidad iii ajax

El archivo pagina1.html

<html>

<head>

<title>Problema</title>

<script src="../json.js" language="JavaScript"></script>

<script src="funciones.js" language="JavaScript"></script>

</head>

<body>

<h2>Enviar datos desde el navegador en formato JSON y proceder a la

decodificación en una clase PHP con la librería JSON.php</h2>

<input type="button" value="Enviar" id="boton1">

<div id="resultados"></div>

</body>

</html>

17

Page 18: Unidad iii ajax

Las funciones JavaScript18

Page 19: Unidad iii ajax

Cuando se presiona el botón procedemos a partir de un objeto JavaScript generar una cadena en formato JSON, luego procedemos a llamar a la función enviarDatos:

var obj={

nombre:'juan',

edad:25,

sueldos:[1200,1700,1990]

};

var cadena=obj.toJSONString();

enviarDatos(cadena);

19

Page 20: Unidad iii ajax

La función enviarDatos procede a crear un objeto de la clase XMLHttpRequest y

pasa mediante el parámetro GET la cadena en formato JSON:

var conexion1;

function enviarDatos(cadena)

{

conexion1=crearXMLHttpRequest();

conexion1.onreadystatechange = procesarEventos;

conexion1.open('GET','pagina1.php?cadena='+cadena, true);

conexion1.send(null);

}

20

Page 21: Unidad iii ajax

Solo queda mostrar el trozo de datos en HTML que retorna el servidor:

function procesarEventos()

{

var resultados = document.getElementById("resultados");

if(conexion1.readyState == 4)

{

resultados.innerHTML = conexion1.responseText;

}

else

{

resultados.innerHTML = "Cargando...";

}

}

21

Page 22: Unidad iii ajax

archivo pagina1.php

<?php

require('../JSON.php');

$json=new Services_JSON();

$cad=$json->decode(stripslashes($_REQUEST['cadena']));

echo 'Nombre:'.$cad->nombre;

echo '<br>';

echo 'Edad:'.$cad->edad;

echo '<br>';

echo 'Primer sueldo:'.$cad->sueldos[0];

echo '<br>';

echo 'Segundo sueldo:'.$cad->sueldos[1];

echo '<br>';

echo 'Tercer sueldo:'.$cad->sueldos[2];

?>

22

Page 23: Unidad iii ajax

El método que convierte una cadena con formato JSON en un

objeto de PHP es:

$cad=$json->decode(stripslashes($_REQUEST['cadena']));

Recordemos que con la función stripslashes sacamos los caracteres

de escape(barras invertidad para las comillas entre otras)

Luego podemos fácilmente acceder a los atributos del objeto con

la sintaxis

23

Page 24: Unidad iii ajax

De JSON a PHP (utilizando

la librería JSON.php)AHORA NOS QUEDA VER COMO EN EL SERVIDOR RECIBIR DATOS CONFORMATO JSON Y PROCEDER A GENERAR UNA CLASE EN PHP MEDIANTE LALIBRERÍA JSON.PHP.

LA SINTAXIS ES:

$JSON=NEW SERVICES_JSON();

$CAD=$JSON->DECODE(STRIPSLASHES($_REQUEST['CADENA']));

ECHO 'NOMBRE:'.$CAD->NOMBRE;

...

...

Page 25: Unidad iii ajax

la clase Services_JSON tiene un método llamado decode que recibe como

parámetro una cadena con datos codificados en JSON y procede a retornar la información en un objeto.

Page 26: Unidad iii ajax

Ejemplo:

Elaboraremos un problema que envíe desde el navegador información en

formato JSON y en el servidor la convertiremos en un objeto de PHP y

procederemos a generar un trozo de HTML que retornaremos al navegador

para que lo muestre.

Page 27: Unidad iii ajax

El archivo pagina1.html

<html>

<head>

<title>Problema</title>

<script src="../json.js" language="JavaScript"></script>

<script src="funciones.js" language="JavaScript"></script>

</head>

<body>

<h2>Enviar datos desde el navegador en formato JSON y proceder a la

decodificación en una clase PHP con la librería JSON.php</h2>

<input type="button" value="Enviar" id="boton1">

<div id="resultados"></div>

</body>

</html>

Page 28: Unidad iii ajax

las funciones JavaScrip

Page 29: Unidad iii ajax

Cuando se presiona el botón procedemos a partir de un objeto JavaScript generar una cadena en formato JSON, luego procedemos a llamar a la función enviarDatos:

var obj={

nombre:'juan',

edad:25,

sueldos:[1200,1700,1990]

};

var cadena=obj.toJSONString();

enviarDatos(cadena);

Page 30: Unidad iii ajax

La función enviarDatos procede a crear un objeto de la clase XMLHttpRequest y pasa mediante el parámetro GET la cadena en formato JSON:

var conexion1;

function enviarDatos(cadena)

{

conexion1=crearXMLHttpRequest();

conexion1.onreadystatechange = procesarEventos;

conexion1.open('GET','pagina1.php?cadena='+cadena, true);

conexion1.send(null);

}

Page 31: Unidad iii ajax

Solo queda mostrar el trozo de datos en HTML que retorna el servidor:

function procesarEventos()

{

var resultados = document.getElementById("resultados");

if(conexion1.readyState == 4)

{

resultados.innerHTML = conexion1.responseText;

}

else

{

resultados.innerHTML = "Cargando...";

}

}

Page 32: Unidad iii ajax

archivo pagina1.php

<?php

require('../JSON.php');

$json=new Services_JSON();

$cad=$json->decode(stripslashes($_REQUEST['cadena']));

echo 'Nombre:'.$cad->nombre;

echo '<br>';

echo 'Edad:'.$cad->edad;

echo '<br>';

echo 'Primer sueldo:'.$cad->sueldos[0];

echo '<br>';

echo 'Segundo sueldo:'.$cad->sueldos[1];

echo '<br>';

echo 'Tercer sueldo:'.$cad->sueldos[2];

?>

Page 33: Unidad iii ajax

El método que convierte una cadena con formato JSON en un

objeto de PHP es:

$cad=$json->decode(stripslashes($_REQUEST['cadena']));

Recordemos que con la función stripslashes sacamos los caracteres

de escape(barras invertidad para las comillas entre otras)

Luego podemos fácilmente acceder a los atributos del objeto con

la sintaxis