Foros del Web » Programando para Internet » PHP »

Problema al enviar JSON

Estas en el tema de Problema al enviar JSON en el foro de PHP en Foros del Web. Buenos dias compañeros Tengo este problemita @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $json = array ( 'id_perfil' => "1" ) ; // lo codifico a ...
  #1 (permalink)  
Antiguo 03/10/2011, 10:35
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Problema al enviar JSON

Buenos dias compañeros

Tengo este problemita

Código PHP:
Ver original
  1. $json = array ('id_perfil'=>"1");
  2. // lo codifico a JSON
  3. $retorno =  json_encode($json);

lo necesito enviar por una funcion

<a href="javascript:SuprimirAsignacion('<?php echo $retorno; ?>')" title="Suprimir relaci&oacute;n">Eliminar</a>

Pero en la barra de estado me aparece:

javascript:SuprimirAsignacion('{

No me esta tomando todo, y al darle click la consola Firebug dice:

unterminated string literal



Esta es la funcion

Código Javascript:
Ver original
  1. function SuprimirAsignacion(json){
  2.     alert(json);
  3.   //var obj = eval(json);
  4.     //alert(obj[0].id_perfil);
  5. }

No se como pasarlo a String.

Gracias...



Última edición por informacionsys; 03/10/2011 a las 10:43
  #2 (permalink)  
Antiguo 03/10/2011, 10:49
 
Fecha de Ingreso: agosto-2011
Ubicación: DF
Mensajes: 44
Antigüedad: 12 años, 8 meses
Puntos: 10
Respuesta: Problema al enviar JSON

te falto convertirlo a formato json
json_encode($json);

saludos.
  #3 (permalink)  
Antiguo 03/10/2011, 10:51
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

Hola..

No porque si te fijas la variable $retorno contiene el arreglo codificado a JSON
  #4 (permalink)  
Antiguo 03/10/2011, 10:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema al enviar JSON

No lo pongas entre comillas simples, si ya es JSON debes de imprimirlo directo:
Código PHP:
Ver original
  1. <a href="javascript:functionJSON(<?echo $retorno; ?>);">

Saludos.
  #5 (permalink)  
Antiguo 03/10/2011, 11:01
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

Buenos dias


Hola GatorV , ya lo probe asi y el Firebug dice invalid property id, porque como explique anteriormente la barra de estado muestra

javascript:SuprimirAsignacion('{

deberia mostrar

javascript:SuprimirAsignacion({'id_perfil':1})

Gracias.
  #6 (permalink)  
Antiguo 03/10/2011, 11:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema al enviar JSON

Si te fijas tienes un ('{ eso es incorrecto, verifica el HTML generado y ve como esta insertando el JSON dentro de tu cadena HTML.

Saludos.
  #7 (permalink)  
Antiguo 03/10/2011, 11:55
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

Hola

tengo mi arreglo

$json = array ('id_perfil'=>"1");
// lo codifico
$retorno = json_encode($json);

En la funcion lo envio asi.

SuprimirAsignacion(<?php echo $retorno; ?>) ... eso me muestra ('{ en la barra de estado, y si lo paso asi

SuprimirAsignacion('<?php echo $retorno ; ?>') me dice unterminated string literal...

si imprimo la variable $retorno aparece asi:

{"id_perfil":"1"}

por ende deberia quedar asi:

SuprimirAsignacion({"id_perfil":"1"}) ... creo

Gracias..
  #8 (permalink)  
Antiguo 03/10/2011, 12:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema al enviar JSON

¿Verificaste el código HTML generado para que veas como lo esta haciendo?
  #9 (permalink)  
Antiguo 03/10/2011, 12:48
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

Hola

mmmmm la verdad no entiendo a que te refieres con que verifique el codigo HTML, no hay ninguna etiqueta o caracter que haga conflicto...

Yo lo veo supuestamente que es asi en cuanto a sintaxis..
  #10 (permalink)  
Antiguo 03/10/2011, 12:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema al enviar JSON

Cuando ves el HTML generado por tu script, lo puedes ver en tu navegador al daro boton derecho -> ver código fuente, así puedes ver como esta imprimiendo tu cadena.

Es algo básico que debes de saber si estas haciendo programación web.
  #11 (permalink)  
Antiguo 03/10/2011, 13:33
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Problema al enviar JSON

Mira, lo más probable es que haya una comilla doble que esté cerrando la comilla doble que comienza con javascript:functionJSON, solución? yo también he intentado hacer algo así y no lo he conseguido por los mismos problemas que a ti te pasa. Y qué hice? Pues tuve que codificarlo y enviarlo como un texto cualquiera luego decodificarlo y hacer un eval. Eso es algo que a muchos no les gustaría porque no se recomienda usar eval, pero si a ti te parece podrías hacerlo, sería así:

functionJSON('<?php echo urlencode($json); ?>');

No me equivoqué, en este caso si va con comillas simples. Luego la función funcionJSON sería así:

Código:
funcionJSON(json) {
  var obj = eval('(' + unescape(json) + ')');

}
Sé que no es muy elegante, pero funciona. Suerte!
  #12 (permalink)  
Antiguo 03/10/2011, 13:57
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

Cita:
Iniciado por GatorV Ver Mensaje
Cuando ves el HTML generado por tu script, lo puedes ver en tu navegador al daro boton derecho -> ver código fuente, así puedes ver como esta imprimiendo tu cadena.

Es algo básico que debes de saber si estas haciendo programación web.
Hola ..... mmmm ok gracias por tu sugerencias y recomendación , no habia caido en cuenta exactamente en verlo por ese lado...

de todas maneras muchas gracias por tu ayuda....

  #13 (permalink)  
Antiguo 03/10/2011, 14:01
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

Cita:
Iniciado por Artificium Ver Mensaje
Mira, lo más probable es que haya una comilla doble que esté cerrando la comilla doble que comienza con javascript:functionJSON, solución? yo también he intentado hacer algo así y no lo he conseguido por los mismos problemas que a ti te pasa. Y qué hice? Pues tuve que codificarlo y enviarlo como un texto cualquiera luego decodificarlo y hacer un eval. Eso es algo que a muchos no les gustaría porque no se recomienda usar eval, pero si a ti te parece podrías hacerlo, sería así:

functionJSON('<?php echo urlencode($json); ?>');

No me equivoqué, en este caso si va con comillas simples. Luego la función funcionJSON sería así:

Código:
funcionJSON(json) {
  var obj = eval('(' + unescape(json) + ')');

}
Sé que no es muy elegante, pero funciona. Suerte!

gracias por tu ayuda lo voy a probar...


Gracias
  #14 (permalink)  
Antiguo 03/10/2011, 14:18
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Problema al enviar JSON

listo..

solucionado .... muchas gracias a todos por la ayuda que me han brindado.....


Graciasssss

Etiquetas: json
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 06:49.