Json en cakephp

165 views
Skip to first unread message

Mayden

unread,
Apr 5, 2011, 11:35:46 AM4/5/11
to CakePHP en Español
Hola a todos, alguien me podria explicar o darme alguna direccion de
referencia para poder enviar mediante json datos a una vista.
Desde ya muchas gracias.

Daniel Ceillan

unread,
Apr 5, 2011, 12:07:02 PM4/5/11
to cakep...@googlegroups.com

mmm no entiendo... para que enviar los datos en un formato a la vista?

la vista es la que formatea. Yo uso JSON para enviar datos, por ejemplo, desde el servidor con cakephp, al navegador que visita la pagina a traves de javascript...

Armo una vista donde los datos los organizo en formato JSON, y el javascript hace un ajax a esa url. Y luego manipula la info.

Esto o hice con cakephp y json:

http://apps.facebook.com/chatinmycity/

Saludos.

--
Daniel Ceillan

Sebastian Maydana

unread,
Apr 5, 2011, 12:34:45 PM4/5/11
to cakep...@googlegroups.com
Espero explicarme mejor, mi problema es que en una vista tengo el
siguiente codigo javascript:

function changeVal(){
var uuid = '<?php echo $uuid2 ?>';
$.get('<?php echo
$this->Html->url(array('controller'=>'cortos','action'=>'prueba',$uuid2))?>',
function(data){

var percentage = data;

});
pr.progressbar( "option", "value", percentage );
}

y en mi controller lo siguiente

function prueba($uuid=null) {

$this->layout = false;

configure::write('debug', 0);

echo json_encode($uuid);

$this->autoRender = false;
}

y no puedo obtener los datos que me devuelve el controlador, me tira
el error de Failed to load resource.
Espero poder explicarme bien y si alguien me puede ayudar o guiarme en
donde se encuentra mi error, desde ya muchas gracias.

El día 5 de abril de 2011 13:07, Daniel Ceillan
<codigo...@gmail.com> escribió:

> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP en
> Español" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> cakep...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> cakephp-esp...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/cakephp-esp?hl=es.
>

Jhonatan Silva Orrego

unread,
Apr 5, 2011, 1:04:17 PM4/5/11
to cakep...@googlegroups.com

Viejo yo hago la consulta normal en el controlador con el find y paso la variable a la vista, una vez en la vista la imprimo con la funcion json_encode y no tengo problemas, lo que tenes que garantizar es que el JSOn este limpio osea que deberia renderizar la vista con un layout limpo


<?php
       //EN EN CONTROLADOR
       $this->set('data',$this->Modelo->find('all'));
       //EN LA VISTA 
      echo json_encode($data);
?>

Ten en cuenta que la funcion json_encode creo que  solo esta desde la  version de PHP 5.2 en adelante


Mucha suerte
Debian     Jhonatan Silva Orrego
     Programador web
  
  Movil    316 876 99 00
    Oficina  454 72 81  

    La caja decia “Requiere Win98" o superior. Así que  instale Linux.

 

Twitter


2011/4/5 Sebastian Maydana <sebastia...@gmail.com>

Daniel Ceillan

unread,
Apr 5, 2011, 1:31:04 PM4/5/11
to cakep...@googlegroups.com
El 5 de abril de 2011 14:04, Jhonatan Silva Orrego <jhos...@gmail.com> escribió:

Viejo yo hago la consulta normal en el controlador con el find y paso la variable a la vista, una vez en la vista la imprimo con la funcion json_encode y no tengo problemas, lo que tenes que garantizar es que el JSOn este limpio osea que deberia renderizar la vista con un layout limpo


<?php
       //EN EN CONTROLADOR
       $this->set('data',$this->Modelo->find('all'));
       //EN LA VISTA 
      echo json_encode($data);
?>

Ten en cuenta que la funcion json_encode creo que  solo esta desde la  version de PHP 5.2 en adelante


Mucha suerte

Claro, es asi... tu problema no es el código sino tu técnica de desarrollo. Quieres resolver demasiadas cosas al mismo tiempo. Deberías hacer mas "baby steps", y primero verificar que la vista de cake devuelve bien lo que necesitas. El JSON correctamente.

Una vez dominado eso, intentas traer los datos por javascript y mostrarlos...

y una vez dominado eso, intentas actualizar la barra de progreso.

Por otro lado, me parece a mi que el $this->layout va en 'ajax', no en false.

Suerte!

--
Daniel Ceillan
http://proyectohelado.com.ar


Reply all
Reply to author
Forward
0 new messages