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 originalvar 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]"}]}
*/