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, estoy utilizando el JSON para pasar un array de php a Javascript, el problema es que no me muestra algunos registros dice:"undefined", Código PHP: ...
  #1 (permalink)  
Antiguo 22/02/2007, 16:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Problemas con JSON

Hola, estoy utilizando el JSON para pasar un array de php a Javascript, el problema es que no me muestra algunos registros dice:"undefined",

Código PHP:
$art=$_POST["var"];
if (isset(
$art))
{
$query_i=sprintf("select item_codi,item_nomb,item_pvt1 from vca_item where item_nomb like %s",comillas_inteligentes($art));

$rs=mysql_query($query_i,$cn);
$items = array();
while(
$fields mysql_fetch_assoc($rs))
{
$items[]=mysql_fetch_assoc($rs);
}

mysql_free_result($rs);
mysql_close($cn);

echo 
$json->encode($items); 

Una vez que hago esto al array es enviado a Javascript y uso la funcion Eval:

Código PHP:
var arr=eval(ajax.responseText); 
Con esto y otras cosas mas,puedo obtener el array e imprimirlo hasta alli todo bien, pero hay ocasiones unos elementos del array, sale :"undefined", no se que pasa.

en la descripcion de la libreria JSON, dice, "All strings should be in ASCII or UTF-8 format!", osea que este en ese formato, pero en mi BD tambien dice que usa el UTF-8.

Pueden ayudarme?
  #2 (permalink)  
Antiguo 23/02/2007, 05:15
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: Problemas con JSON

Podrías poner un ejemplo de una cadena json en la que te suceda eso?
  #3 (permalink)  
Antiguo 23/02/2007, 05:50
Avatar de Valkam  
Fecha de Ingreso: junio-2006
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Problemas con JSON

Aunque no estuvieran en UTF-8, saldrían caracteres extraños pero no undefined. Me suena más a que algún caracter de alguno de los datos esté confundiendo al eval de javascript. ¿Has probado visualizar el contenido de la respuesta antes de hacer eval a ver si hay algo raro?

Un Saludo
  #4 (permalink)  
Antiguo 23/02/2007, 09:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Problemas con JSON

cuando recupero los valores con el ajax, me manda este mensaje:

Código PHP:
var arr=eval(ajax.responseText);

alert(ajax.responseText);
alert(arr); 
en el primer alert me sale este mensaje:

Código PHP:
[{"item_codi":"242321549116","item_nomb":"W - 70%","item_pvt1":"19.560"},{"item_codi":"206119131107","item_nomb":"WASH PRIMER 1 GLN","item_pvt1":"110.000"},false
en el segundo me sale este:

Código PHP:
[object object],[object object],false 
Por lo que supongo que algo esta fallando en la consulta SQL la cual me trae los datos


Código PHP:
$art=trim($_POST["var"]);

if (isset(
$art))
{

$query_i=sprintf("select item_codi,item_nomb,item_pvt1 from vca_item where item_nomb like %s order by item_nomb",comillas_inteligentes($art));

$rs=mysql_query($query_i,$cn);
$items = array();
while(
$fields mysql_fetch_assoc($rs))
{
$items[]=mysql_fetch_assoc($rs);
}

mysql_free_result($rs);
mysql_close($cn);

echo 
$json->encode($items); 
tambien hice la prueba cambiando la consulta a

Código PHP:
$query_i="select item_codi,item_nomb,item_pvt1 from vca_item where item_nomb like '$art%'"

Que sera?, pero voy a seguir tratando de solucionar el problema.
  #5 (permalink)  
Antiguo 23/02/2007, 14:56
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Problemas con JSON

despues de revisar mi script una y otra vez me di cuenta de algo, si hay un alert, antes de esta funcion de AJAX: ajax.onreadystatechange=function() no funciona correctamente al ajax
la verdad no lo se pero no entra a esa funcion y no permite hacer nada.

si no me creen aca esta el codigo:

Código PHP:
alert(articulo);

ajax.onreadystatechange=function() 
        { 

//quiere decir que ya recibio una respuesta del servidor///
                
        
if (ajax.readyState==4)
            {
        
//alert('longitud '+arr.length);
        
var arr=eval(ajax.responseText);
        
aglobal=arr;
}


Yo siempre pongo varios alert para imprimir variables para saber su valor;
Yo me di cuenta de eso, cuando ese alert lo comente: //alert(articulo), y me salio, luego le quite el comentario y de nuevo no me funciono, lo volvi a comentar y me funciono.

Última edición por StrikeFreedom; 23/02/2007 a las 22:14
  #6 (permalink)  
Antiguo 23/02/2007, 21:55
 
Fecha de Ingreso: enero-2006
Mensajes: 30
Antigüedad: 18 años, 3 meses
Puntos: 1
Re: Problemas con JSON

Creo que en readyState también deberías comprobar el valor de "status", que sea igual a 200.
  #7 (permalink)  
Antiguo 23/02/2007, 22:15
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Problemas con JSON

Gracias por la info, voy a tomarla en cuenta
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 05:05.