Tema: PHP y Json
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/11/2008, 15:53
Avatar de MaBoRaK
MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 7 meses
Puntos: 35
Respuesta: PHP y Json

loading.............


Bueno, JSON no es mas que una forma de 'nomenclatura/cadena... o similar' para intercambiar datos no solo entre cliente servidor, sino entre diferentes lenguajes

por ejemplo en javascript creas un Objeto (tabla de dispersión) asi:

Código PHP:
var = {
    
a:1,
    
b:2,
    
c:[1,2,3]
}; 
en php

Código PHP:
$a = new stdClass();
$a->a=1;
$a->b=1;
$a->c=array(1,2,3); 
Ahora bien para tener un puente entre ambos, es que se ha creado la "nomenclatura" JSON que llega a ser similar a XML.

y en formato json sería

{"a":1,"b":2,"c":[1,2,3]}

Esto es a lo que llamamos tabla de dispersión.

Bueno ahora bien, 2 cosas que debes saber:

1.- En el lado javascript, se debe incluir un archivo.. generalmente json.js que se lo baja de http://json.org/
2.- Y en el lado php tambien se incluye el parser de json.. lo encuentras en la misma web (json.org) aunque aunque ahora json ya es parte del nucleo de PHP pero NO POR DEFECTO.


Cita:
*donde entra el Json en todo esto?
Bueno, en tu caso por ejemplo solo envias el nombre del curso.. entonces por ejemplo tu peticion AJAX es

"curso=octavo"

Tienes 2 alternativas.

1.- En el lado PHP recibes $_REQUEST['curso'] y simplemente haces la consulta a la base de datos y sueltas un HTML. ACA NO USAS JSON.... no hay necesidad.

2.- Quetal si ahora necesitas

1.- curso
2.- numero_de_alumnos
3.- profesor_asignado

Esto para que? .. por ejemplo tienes tu pagina web con una tabla del curso que se ha seleccionado y el parte superior quieres mostrar el numero de alumnos del curso, y en la parte inferior el profesor asignado.

Que harás?

Hacer 3 peticiones y mostrar el HTML de cada uno en el lugar designado? NO, en este caso necesitas 3 variables que usarás A TU ANTOJO

entonces tenemos

"curso=octavo"

Y en php envias esto.

Código PHP:
//blabla tu consulta SQL
$a = new stdClass();
$a->alumnos=231;
$a->profesor='pepe';
$a->curso="<table>blablabla el HTML del curso</html>";

include_once(
'class.json.php');    
$json = new Services_JSON();
echo 
$json->encode($a); 
Esto te genera una cadena similar a

{'alumnos':21,'profesor':'pepe',curso:'<table>blab labla el HTML del curso</html>'};

y con javascript lo que haces es Parsearlo con JSON (creado par javascript)

Código PHP:
var datos responseText.parseJSON();

elnumerodealumnos.innerHTML=datos.alumnos;
profesor.innerHTML=datos.profesor;
section_para_tabla_curso.innerHTML=datos.curso
Como vez, aca recibiste 3 variables y lo has usado como te dio la gana :D

Esa es la utilidad de JSON, la posibilidad de intercambios datos entre Diferentes Lenguajes en este caso JSON <-> PHP

Dentro de Javascript usaste un objeto creado con PHP y también puedes hacerlo viceversa


Cita:
*si recibo un objeto y lo trato como json. no resulta mas trabajoso llenar la tabla (para el ejemplo) q si lo tratara directamente con php y recibir html y las funciones js a usar?
Tienes que darle una buena utilidad, si envías y recibes una variable, no tienes porque usarlo. Pero si tienes la necesidad de manipular los datos que vas a recibir, entonces necesitas JSON o XML.

PD: JSON generalmente es usado en ambientes AJAX. ya que en aplicaciones avanzadas se hace un intercambio masivo de datos es por eso que solo se actualizan pequeñas partes de la aplicación.


connection closed.
__________________

Maborak Technologies