Cadena JSON en CIRRUS


([N1] gerard) #1

Hola estoy usando el CIRRUS, En el CIRRUS tengo una ruta que es:

“GET /usuarios.pro”: “4i829vkp.vca/USUARIOS_CIRRUS”,

con esa ruta, poniendo en la url:

http://192.168.10.12:4000/usuarios.pro

recibo la cadena JSON la recibo asi:

[{“ID”:7,“NAME”:“sdsa”,“FOTO”:"",“TELEFONO”:""},{“ID”:6,“NAME”:“gicu2”,“FOTO”:"",“TELEFONO”:""},{“ID”:5,“NAME”:“gin”,“FOTO”:"",“TELEFONO”:“ASD”},{“ID”:4,“NAME”:“didi”,“FOTO”:"",“TELEFONO”:“123”},{“ID”:3,“NAME”:“juan”,“FOTO”:“JPG00002”,“TELEFONO”:""},{“ID”:2,“NAME”:“pepe”,“FOTO”:“JPG00001”,“TELEFONO”:“11111”},{“ID”:1,“NAME”:“gicu”,“FOTO”:“JPG00000”,“TELEFONO”:“972557720”}]

Como puedo tratarla? desde php, javascript?

en el php tengo este codigo y me devuelve error:

archivo js:
$(document).ready(function(){
$(’#clic’).click(function(e){
$.ajax({
async: true,
type: “POST”,
dataType: “json”,
contentType: “application/x-www-form-urlencoded; charset=UTF-8”,
url: “http://192.168.10.12:4000/usuarios.pro”,
beforeSend: antesEnvio,
success: mostrarDatos,
timeout: 4000,
error: errorEnvio
});
return false;
});

function antesEnvio() {
	$("#lis").text("Se procesa la función");
}
function errorEnvio() {
	$("#lis").text("Ha ocurrido un error!");
}
function mostrarDatos( datos )
{
	$("#lis").text(datos);
}

})

archivo php:
<button id=“clic”>Get JSON data</button>
<div id=“lis”>hola</div>

Lo estoy haciendo todo en local.


([N4] arturomiranda) #2

en php existen funciones para el manejo de json

http://php.net/manual/es/ref.json.php

saludos


([N1] gerard) #3

gracias, me funciono, recibo la cadena en json y la trato con php,

Otra pregunta, para hacer la inversa? tengo un formulario lleno y quiero guardarlo en el vserver, como lo tendria que hacer?

en mi archivo php:

<?
$nombre=“usuario”;
?>

para guardar esa variable en la base de datos con php, que instrucciones habria que seguir? en el vserver hay que tener algun proceso? cual?

gracias


([N1] gerard) #4

he estado provando y creo k con php no se pude devolver un valor al vserver, por lo tanto me decido por volverlo por AJAX.

tengo una funcion al ahcer click a un boton:

$.ajax({
async: true,
type: “POST”,
dataType: “text”,
contentType: “application/x-www-form-urlencoded; charset=UTF-8”,
url: “http://192.168.10.12:4000/usuarios/ins”,
data: “nombre=usuario”,
beforeSend: antesEnvio,
success: mostrarDatos,
timeout: 4000,
error: errorEnvio
});

donde http://192.168.10.12:4000/usuarios/ins con la ruta “POST /usuarios/ins”: “usuariosController#inserta”:

inserta: function(params){
if(theRoot.beginTrans(“Crear Usuarios”)){
var usuarios=new VRegister(theRoot)
usuarios.setTable(“4i829vkp.vcd/USUARIOS”)
usuarios.setField(“NAME”, params.body.nombre)
usuarios.addRegister();
theRoot.commitTrans()
}
return(“ok”)
}

la funcion me lo introduce en la base de datos, pero el ajax me devuelve ERROR. porque? es decir que no hace la funcion del success. sino que hace la funcion del error…


([N1] gerard) #5

Hola, probando y probando he visto que la funcion llamada desde la web “http://192.168.10.12:4000/usuarios.pro” cirrus devuelve una cadena json NO valida…

[{“ID”:7,“NAME”:“sdsa”,“FOTO”:"",“TELEFONO”:""},{“ID”:6,“NAME”:“gicu2”,“FOTO”:"",“TELEFONO”:""}]

no tendria que ser:

{“usuarios:”[{“ID”:7,“NAME”:“sdsa”,“FOTO”:"",“TELEFONO”:""},{“ID”:6,“NAME”:“gicu2”,“FOTO”:"",“TELEFONO”:""}]}


([N4] arturomiranda) #6

¿como estas generando ese json?

los errores mas comunes al utilizar json es que se piensa que se trata de un simple string, pero la realidad se trata mucho mas que eso, en javascript es muy sencillo crear objetos json y convertirlos a un string valido, tambien en otros lenguajes,

te dejo un link para mayor informacion

http://www.json.org/json-es.html


([N1] gerard) #7

El json me lo genera el cirrus, con el proceso.pro que creo en la ruta del cirrus, me devuelve esa cadena…

“GET /usuarios.pro”: “4i829vkp.vca/USUARIOS_CIRRUS”, esa es la ruta, con lo cual el proceso USUARIOS_CIRRUS, es:

-Cargar lista(USUARIOS@taller,ID,)
–Añadir lista a la salida

A ver si hay algo para que me devuelva bien el json…