Seccion data en template con Sqlite


#1

Hola,
solicito de tu ayuda.

tienes un ejemplo de squlite con framework7? no logro enviar la variable array de resultados a la seccion data de la plantilla para hacer el ciclo en el html

return {
resultados: resultadosjs,
lista: ‘xx’,
}

la variable resultadosjs sale como “undefined” y no logro mostrar info, como podria enviarle ese array a la data para qeu funcione correctamente? gracias.


#2

Hola

¿Podrías publicar más código? Por ejemplo donde creas esa variable o como le estás dando la información a la variable.

Saludos


#3

/*esto esta en un js aparte: */
function sql_select(sqll,callback) {
var db = basedatos.webdb.db;
db.transaction(function(tx) {
tx.executeSql(sqll, [], function(tx, results)
{
callback(results);
}, errorHandler)});
}

/* en el template donde lo ejecuto */
sql_select(“SELECT productos.ID as idproo,productos.producto,cajas.valor,cajas.valor_iva,count(doccontabdet.ID) as cantidad,((cajas.valor+cajas.valor_iva)*count(doccontabdet.ID)) as valor_total FROM doccontabdet join detalle on detalle.ID=iddetalle join cajas on cajas.caja=detalle.icaja and cajas.grupo=detalle.igrupo join productos on productos.idproducto=cajas.idproducto where doccontabdet.idestado=1 and iddoccontab=1 group by productos.producto,cajas.valor,cajas.valor_iva”, function(results) {

if (results.rows.length>0) {

     for(var i = 0; i < results.rows.length; i++) {
    

      resultados.push({idproo: results.rows.item(i).idproo,producto: results.rows.item(i).producto,valor: results.rows.item(i).valor,valor_iva: results.rows.item(i).valor_iva,cantidad: results.rows.item(i).cantidad,valor_total: results.rows.item(i).valor_total});

    }

  }

});

iinff=JSON.stringify(resultados);

return {
  nombre: window.localStorage.getItem("nombre"),
  resultados: iinff,
  tamano: iinff.length
}

/* en el template html*/

{{#each resultados}}

{{producto}} {{cantidad}} {{/each}}

#4

Hola

Entiendo que en el return estás haciendo algo parecido a esto no?

Si esa función que dices “en el template donde lo ejecuto” lo estás haciendo en el pageInit el valor de la variable que retorna “iinff” tiene que estar presente y con valor antes de que la página esté iniciada.

No funciona como Vue que puede modificar esa variable para que se agreguen dinámicamente los elementos.

Por lo tanto esa variable “iinff” tiene que tener los datos antes de llegar a ejecutarse, también comprueba que la variable results tiene datos, haz un console.log() para ver que tiene los datos correctos y no hay ningún error en la consulta SQL.

Prueba a setear la variable “iinff” antes de que se inicie la página y verás que funciona.

Saludos


#5

Muchas gracias, miraré a ver que tengo mal, por console si me sale la info, la consulta esta perfecta, lo que no puedo hacer es que al asignarlo a un array el resultado y retornarla, no sale informacion, pero si le hago un console.log (); sale informacion, es decir que la variable no esta vacia, miraré con tu ejemplo a ver que tal, mil gracias!.