Recuperar datos de un JsonStore
Hola buen día a todos, tengo el siguiente código:
var storeEstadosCiviles=new Ext.data.JsonStore({ url:ruta+'ajax_cbo_edo_civil_alumno.php', root: 'rows', totalProperty: 'total', fields: [ {name:'id_edo_civil', type: 'int', mapping:'id_edo_civil'}, {name:'d_edo_civil', type: 'string', mapping: 'd_edo_civil'}, ] }); storeEstadosCiviles.on('load',function(store){ },this);Requiero que dentro de la función de On que es la segunda parte del código que pegué, recuperar los datos que me regresa el JsonStore y que están guardados en la variable storeEstadosCiviles. Sin ponerlo en ningún formulario ni grid. Espero haberme explicado. Saludos
Simplemente ejecuta el metodo "load" para que se realice la peticion al servidor. Para iterar sobre los registros del store utilizas el método "each".
Slaudos
Hola Stock, gracias por la respuesta, tendrías un ejemplo de cómo usar el each?
Cheque uno de los ejemplos que hay en el tutorial de quizzpot: <!-- m -->http://www.quizzpot.com/2009/08/llenar- ... -servidor/<!-- m -->
Estuve probando asi como está en esta función, aunque no me sale.
var info = Ext.decode(response.responseText); //decodificamos el texto que recibimos Ext.each(info,function(movie){ //iteramos la información recibida Ext.DomHelper.append('content',{ //y creamos una imagen para cada elemento tag:'img', src:movie.img, alt:movie.title, title:movie.title, cls: 'movie' }); },this);Lo usé de esta manera:
var info = Ext.decode(response.responseText); Ext.each(info,function(data){ alert(data.semestre); },this);Sin embargo cuando llega al alert me devuelve undefined, qué podría estar haciendo mal? El .php me devuelve una cadena con el mismo formato que está en el link que puse arriba. Si imprimo el responseText me devuelve la cadena que recibo del servidor. Saludos y Gracias
str.each(function(record) { Ext.Msg.alert(record.data[0]); // esto me funciona con un array store });
Hola Stock:
Podrías ponerme un ejemplo de eso? estoy tratando de hacerlo y simplemente no puedo, lo que me pusiste:
storeEstadosCiviles.each(function(record){ console.debug(record); });En qué momento debo mandarlo a llamar, lo que hice fue poner algo asi: storeEstadosCiviles.load(); y debajo de la línea poner el código que me pasaste y como aún no recibo la respuesta del server no entra al each. Cómo le indico que cuando termine de cargar haga el each? por cierto, el formato de la respuesta es la siguiente:
{"success":true,"total":"3","rows":[{"id_edo_civil":"1","d_edo_civil":"SOLTERO(A)"},{"id_edo_civil":"2","d_edo_civil":"CASADO(A)"},{"id_edo_civil":"3","d_edo_civil":"VIUDO(A)"}]}Saludos, gracias de antemano y disculpa tantas molestias
la funcion load del store recibe unos parametros, entre los cuales uno es un callback
en ese callback es donde debes colocar la funcion que ejecuta el each sobre el store, de esta manera te aseguras que esten cargados los datos.
tambien hay un evento que se llama load, que se ejecuta despues de la carga de datos donde tambien puedes colocar que se ejecute la funcion que ejecuta el each sobre el store.
Hola tierrarara, gracias por la respuesta, aunque aún sigue sin salirme, ya pude hacer lo de la parte de callback, sin embargo al hacer el alert para ver el contenido me sale "object [Object]"
el código es el siguiente:
storeCarreraTurnoAlumno.load({ params:{ id_alumno:idAlumno, id_carrera:this.getValue() }, callback:function(response){ storeCarreraTurnoAlumno.each(function(response){ alert(response); }); } });Si entra a la función, ya inté ponerlo asi: alert(Ext.decode(response.responseText)); y me sale "undefined", el resultado del archivo .php es:
{"success":true,"total":1,"rows":[{"id_turno":"1","d_turno":"MATUTINO"}]}Saludos y Gracias
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.