Esta consulta es de hace 7 años. No tome esta información como actualizada. Si tiene problemas con FacturaScripts, consulte la sección ayuda o la sección contacto
carlospherraz_f74d39

Hola a todos,

carlospherraz_f74d39   España   12-05-2017 11:53:02   24-05-2017 10:28:24   241   [shawe]
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!
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.
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
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.
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é.
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.
Lo he probado y nada, el problema es exactamente el mismo: funciona perfecto en el depurador pero no funciona fuera.
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.
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é.
Prueba esto, por casualidad, me ha tocado hacer algo similar:

https://pastebin.com/pZpvWxV1
[[Cerrado por inactividad]]
¿Problemas con FacturaScripts?
Si tiene problemas con FacturaScripts consulte la sección ayuda o la sección contacto



Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2024 FacturaScripts
0.16651s

Soporte