Foros del Web » Programando para Internet » Javascript »

Problemas con json

Estas en el tema de Problemas con json en el foro de Javascript en Foros del Web. Hola, me gustaria por favor que me ayuden ya que necesito esto urgente, bueno les comento estoy obteniendo un array de la base de datos ...
  #1 (permalink)  
Antiguo 07/11/2013, 11:40
 
Fecha de Ingreso: septiembre-2013
Mensajes: 13
Antigüedad: 10 años, 7 meses
Puntos: 1
Problemas con json

Hola, me gustaria por favor que me ayuden ya que necesito esto urgente, bueno les comento estoy obteniendo un array de la base de datos con php y luego lo paso a javascript mediente el ajax, antes de mandar el array lo convierto a json, pero por algun motivo en el javascript no lo convierte a array aqui dejo el codigo:

Código PHP:
Ver original
  1. $result = mysql_query("select ep,p1,p2,ef from Estadistico1 where escuela like '".$esc."' and sede like '".$sed."' and periodo like '".$per."' limit 1",$link) or die(mysql_query());
  2.         while ($row = mysql_fetch_array($result)) {
  3.             $ejemplo['ep'] = $row[0];
  4.             $ejemplo['p1'] = $row[1];
  5.             $ejemplo['p2'] = $row[2];
  6.             $ejemplo['ef'] = $row[3];
  7.         }
  8.         echo json_encode($ejemplo);
  9.         desconectar($link);

Código Javascript:
Ver original
  1. function llenadiv(div){
  2.     ajax=nuevoAjax();
  3.     var con = document.getElementById(div);
  4.     if(div=="periodo"){
  5.         var esc = document.getElementById("sescuela");
  6.         var sed = document.getElementById("ssede");
  7.         ajax.open("GET","funciones.php?var="+div+"&esc="+(esc.options[esc.selectedIndex].value)+"&sed="+(sed.options[sed.selectedIndex].value),true);
  8.     }else if(div=="datos"){
  9.         var esc = document.getElementById("sescuela");
  10.         var sed = document.getElementById("ssede");
  11.         var per = document.getElementById("speriodo");
  12.         ajax.open("GET","funciones.php?var="+div+"&esc="+(esc.options[esc.selectedIndex].value)+
  13.         "&sed="+(sed.options[sed.selectedIndex].value)+"&per="+(per.options[per.selectedIndex].value),true);
  14.     }else{
  15.         var cam = document.getElementById("stablas");
  16.         ajax.open("GET","funciones.php?var="+div+"&val="+(cam.options[cam.selectedIndex].value),true);
  17.     }
  18.     ajax.send();
  19.     ajax.onreadystatechange=function() {  
  20.         if (ajax.readyState==4) {
  21.             if(div=="datos"){
  22.                 var textoAjax=ajax.responseText;
  23.                 alert(textoAjax);
  24.                 var ar = JSON.parse(textoAjax);
  25.                 alert(ar.ep);
  26.             }else{
  27.                 var textoAjax=ajax.responseText;
  28.                 con.innerHTML=textoAjax;
  29.             }  
  30.         }
  31.     }
  32. }

Por favor espero me puedan ayudar ya que lo necesito mucho, Gracias de antemano
  #2 (permalink)  
Antiguo 07/11/2013, 12:00
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Problemas con json

Que tal
Seria bueno que nos dijeras que te arroja actualmente

Entre lo que puedo ver es que en php tienes un array asociativo y en javascript esperas un objeto, ahi esta el problema

en javascript no eisten los arrays asociativos

lo que se hace es crear un objeto y entonces utilizar la sintaxis de array asociativo

Para solucionarlo deberias poner indices numericos en php o crear un objeto en php

Ahora si en javascript puedes recibir el array numerico o el objeto y utilizar la sintaxis de array asociativo

saludos
  #3 (permalink)  
Antiguo 07/11/2013, 12:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problemas con json

le falta evaluar el XHR.status == 200 junto con el readyState = 4, consulte un manual de AJAX

además la parte de PHP también tiene incongruencias, por ejemplo tiene un ciclo pero siempre devolverá la última fila, use un array de arrays.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 07/11/2013, 12:03
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Problemas con json

aparte no todos los navegadores soportan el objeto JSON

salu2
  #5 (permalink)  
Antiguo 07/11/2013, 12:03
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Problemas con json

Típico. Para que haya JSON tiene que estar dentro de una variable referencia.

var jsonstring = { };

jsonstring.propiedad
  #6 (permalink)  
Antiguo 07/11/2013, 12:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problemas con json

el problema del usuario es que no le llagan datos, porque el manejo de la respuesta AJAX está mal, corrija y pruebe de nuevo para descartar otros problemas.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 07/11/2013, 13:19
 
Fecha de Ingreso: septiembre-2013
Mensajes: 13
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Problemas con json

Gracias por responder, en cuanto a error no me arroja nada y en cuento a arrays asociativos lo he probado con esto y si funciona:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. </head>
  6.  
  7. var m = '{"nombre":"juan","edad":"15"}';
  8. var dato = JSON.parse(m);
  9. alert(m);
  10. alert(dato.edad);
  11. </body>
  12. </html>

como pueden ver no estoy creando objetos solo estoy creando una variable segun el valor se volvera String y en cuanto al tipo de dato que espera cuando le puse typeof() me boto que lo que devolvia el php es un string, pero cuando pongo el JSON.parse() de ahi en adelante el codigo es ignorado
  #8 (permalink)  
Antiguo 07/11/2013, 13:39
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Problemas con json

Pregunta más sencilla: ¿Llega a ejecutarse el alert textoajax?

Última edición por PHPeros; 07/11/2013 a las 13:46
  #9 (permalink)  
Antiguo 07/11/2013, 13:58
 
Fecha de Ingreso: septiembre-2013
Mensajes: 13
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Problemas con json

claro me sale esto

{"ep":"25","p1":"30","p2":"15","ef":"20"}

que son los datos que estan en la BD

Etiquetas: ajax, html, js, json, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.