hace 6 meses   carlospherraz_f74d39
Hola a todos,

Hace poco me ayudasteis a resolver una duda sobre una petición a la base de datos con $.get(), que quedó resuelta aquí.

Ahora vuelvo a tener un problema curioso con ello y es que creo que los datos que obtengo de la base de datos no llegan a tiempo, me explico:

1. Hago la petición de datos y los guardo en un array:
$.get("index.php", {page:"verproyecto", feed:"12"},function(mensaje){
                     feedscondiciones.push(mensaje);
                     }, "json");

2. Paso el array a una función para hacer algunos cálculos:
var total= costetotal(lineas,feedscondiciones);

3. Obtengo un error que dice "feedscondiciones is undefined".

Lo curioso es que en la consola de JS pongo "feedscondiciones" y está perfecto, con los datos que yo necesitaba. Ejecuto esa parte del código paso a paso en el depurador y sale todo bien y no hay ningún problema. He probado a meter la llamada a la función dentro del callback y el resultado es el mismo: error sin depurador, todo perfecto con depurador...

¿Alguna idea?

Gracias de antemano!
hace 6 meses   shawe   [partner]
Te importaría pegar una porción más grande de código en pastebin y pegarnos el enlace?

Yo hice algo similar y creo recordar que tuve un problema similar, así que puedo comparar lo que has hecho con lo hice.
hace 6 meses   carlospherraz_f74d39
Hola otra vez,

Este es el link a pastebin: https://pastebin.com/2FJf1Tb6

He puesto tres fragmentos separados (VIEW, CONTROLLER, MODEL), creo que será suficiente.

Gracias
hace 6 meses   shawe   [partner]
Creo que se puede dar por hecho, pero tienes en algún lugar algo como esto?

var feedscondiciones;


Lo pregunto porqué veo que le fuerzas la longitud a 0 en el primer fragmento, y quiero entender que lo ideal es "redefinir" la variable para vaciarla por ejemplo con feedscondiciones = array(); o con el tipo que le hubieras indicado que sea.
hace 6 meses   carlospherraz_f74d39
Donde declaro las variables tengo:
var feedscondiciones=[];


Cuando le fuerzo a que su longitud sea 0 es porque necesito vaciarla sin recargar la página y leí en algunos tutoriales que la mejor forma era esa... pero ni idea de por qué.
hace 6 meses   shawe   [partner]
No se si es la mejor forma, pero yo no lo había visto nunca así, en su lugar siempre lo he visto como:

feedscondiciones = [];
o con new

Aunque mirando esto, entiendo que si, lo que hiciste es correcto, pero explican que no reserva memoria nueva. Por si acaso, prueba a hacer ese cambio, a ver si deja de suceder.

En lo que te comenté que yo probé, recibía un JSON y el problema lo tenía a la hora de leerlo, pero veo que no tiene nada que ver, sino que en su momento no debía aclararme en la forma de parsearlo para pasarlo a array.
hace 6 meses   carlospherraz_f74d39
Lo he probado y nada, el problema es exactamente el mismo: funciona perfecto en el depurador pero no funciona fuera.
hace 6 meses   shawe   [partner]
Estas es la estructura que yo utilicé: https://pastebin.com/ZQKyL0zf

El problema que te comenté que tuve era porque el JSON (concretamente un geoJSON en este caso) lo tenía que recibir LeafLet directamente como un parametro, si lo procesaba yo antes, dejaba de funcionar.
hace 6 meses   carlospherraz_f74d39
He probado con esto:
for (var i= 0; i<feedsid.length;i++){
            $.get("index.php", {page:"verproyecto", feed:feedsid[i]},function(mensaje){
                feedscondiciones.push(mensaje);
                }, "json")
                        .done(function(){
                            var total= costetotal(lineas[i],feedscondiciones[i]);
                            costes_totales.push(total);
                        });
              }

y sigue pasando igual... no sé.
hace 6 meses   shawe   [usuario]
Prueba esto, por casualidad, me ha tocado hacer algo similar:

https://pastebin.com/pZpvWxV1
hace 5 meses   -   [cron]
[[Cerrado por inactividad]]
No se pueden hacer más comentarios. Mejor escribe una nueva pregunta

carlospherraz_f74d39

ES  usuario


OFERTA

Plugin prestashop_micro

Financiación extra

27 patrocinadores

Este mes se han realizado un total de 27 aportaciones económicas para acelerar el desarrollo del proyecto.

82% Complete

410 € este mes.

+5 € +4 votos

+25 € +20 votos




Soporte:

FacturaScripts es software libre y gratuito, pero si lo que busca es asesoramiento y soporte profesional, use la sección soporte.

  Soporte

¿Desea ser distribuidor?

Si desa ser distribuidor oficial de FacturaScripts, comience hoy mismo el proceso.

  hágase partner

Redes sociales:

Puede encontrarnos en las principales redes sociales. Y también en google+.





© 2013-2017 FacturaScripts