Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/12/2011, 01:32
Avatar de dggluz
dggluz
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Usando PHP con JSON - Como es que funciona ?

Escribí esta respuesta pensando en que tienes cierto manejo de JavaScript y de programación orientada a objetos (que al menos sabes qué es un objeto y cómo puede escribirse en JavaScript). Espero que te sirva:

No te compliques con archivos JSON, no necesitas ninguno. JSON es una notación para describir objetos (tiene ciertas limitaciones, como las referencias circulares, pero no viene al caso), cuya principal ventaja (para los programadores web) es que en sí mismo es código JavaScript válido. Entonces, el resultado de evaluar una cadena JSON en JavaScript es un objeto JavaScript. Por ejemplo:
Código Javascript:
Ver original
  1. var persona=eval('('+'{"nombre": "carlos", "edad": 50}'+')');
Lo que debes hacer entonces es guardar en una variable el resultado de evaluar la cadena JSON (en JavaScript, obvio... en caso de que no sepas JavaScript, lo primero sería aprenderlo). Luego, puedes manipular ese objeto como te plazca (por ejemplo, modificar el DOM a partir de la información en ese objeto). En lugar de usar la función "eval", puedes usar el objeto JSON que está disponible en algunos navegadores (esta opción es más segura y correcta, pero menos compatible). Si usas eval, agrega un par de paréntesis alrededor de la cadena JSON, para evitar un posible error de sintaxis (en JavaScript las llaves se usan tanto para escribir objetos literales como para encerrar bloques de código).
Desde el servidor lo único que tendrías que hacer es imprimir código JSON (¡nada de código HTML!), que puedes armarlo a mano, o mejor aún: generarlo a partir de un array o de un objeto PHP con la función json_encode:

Código PHP:
$rows = array();

$query mysql_query("SELECT email, usuario FROM tbl_usuario ORDER BY email;");

while(
$item mysql_fetch_array($query)){
    
$rows[] = $item;
}

echo 
json_encode(array('resultados'=>$rows));
/*
Debería imprimir algo como: {"resultados":[{"nombre":"pepe", "email":"[email protected]"}, {"nombre":"pancho", "email":"[email protected]"}]}
*/