[Php-avanzado] consulta jquery para la tesis
Matias Gea
matigea en gmail.com
Lun Jun 3 09:44:15 ART 2013
Ya me perdí de nuevo, ahora estás haciendo 3 llamadas anidadas? Me pasás el
código nuevo (el que no te funciona correctamente)?
Saludos!
El 2 de junio de 2013 11:28, Cesar Gimenez Lascano <
cesargimenezlascano en gmail.com> escribió:
> Gracias Leo! disculpame, a que te referís con "devolverlo ya cagado desde
> el servidor"? a guardar los datos recibidos de las llamadas a las apis en
> la base de datos? gracias x la ayuda. saludos!!
>
>
> El 1 de junio de 2013 19:15, Leonardo Tadei - Pegasus Tech Supply <
> leonardot en pegasusnet.com.ar> escribió:
>
> Cesar:
>>
>> Quiero volver a una cuestión que Matías platea muy correctamente:
>> no
>> tiene sentido hacer varias llamadas AJAX en un bucle, porque si te hace
>> falta todo esto, devolvelo ya cargado desde el servidor y listo!
>> Más allá del problema de sintaxis que haya, no es un uso
>> razonable de
>> AJAX, ya que es más lento todo esto que cargar los valores desde el
>> principio.
>>
>> Acordate del "principio de programación KISS" !!!
>>
>>
>>
>> El sáb, 01-06-2013 a las 15:52 -0300, Cesar Gimenez Lascano escribió:
>> > la del ultimo registro de la tabla de la base de datos
>> >
>> >
>> > El 1 de junio de 2013 15:51, Cesar Gimenez Lascano
>> > <cesargimenezlascano en gmail.com> escribió:
>> > perdón mati, me adelante. El popup muestra bien la info de la
>> > segunda llamada, pero de la primera muestra en todos los
>> > popups la misma info.
>> >
>> >
>> > El 1 de junio de 2013 15:36, Cesar Gimenez Lascano
>> > <cesargimenezlascano en gmail.com> escribió:
>> >
>> > Genio Matias!!! anduvo de 10!!!! ahí entendí cual era
>> > mi error, muchas gracias de verdad.Ya que estoy y sin
>> > animo de abusar quisiera preguntarte, necesito tmb que
>> > el popup muestre información de una llamada ajax mas,
>> > donde encajaría en el nuevo código que me pasaste?
>> > abrazo!!!
>> >
>> >
>> > El 1 de junio de 2013 14:46, Matias Gea
>> > <matigea en gmail.com> escribió:
>> >
>> > El problema lo tenés, probablemente acá:
>> > var marker = new L.Marker(location, {title:
>> > nombre, icon: myIcon});// creo el marcador
>> > //llamo a la api de foursquare
>> > $.getJSON('
>> https://api.foursquare.com/v2/venues/'+fourID+'/tips?sort=recent&limit=2&client_id=315YX0EUHY5VW5SFVCPIBMMVYTSNCXNML20AHEEDL1Q2TMEE&client_secret=HOJHGWETZPZYXLS2NYSPMUO0A4WO2UQCUHVWEAXQWAOWROZ2',
>> function(data2) {
>> > var tip1 = data2.response.tips.items[0].text;
>> > var tip2 = data2.response.tips.items[1].text;
>> > marker.bindPopup("<div class='popup'>" +
>> > "<span class='titulo'>"+ nombre +"</span>"
>> > +"</br>"+ dir +"</br>"+ tel +"</br>"+ tip1
>> > +"</br>"+ tip2 + "</div>", {maxWidth:
>> > '600'}); // creo el popup
>> > });
>> >
>> >
>> > Fijate que estás declarando una variable
>> > marker (en el for) y la utilizás para
>> > relacionar el popup después que se resuelve el
>> > request asincrónico. En ese momento (cuando
>> > terminan los requests) ya finalizó hace rato
>> > el for y marker queda con el útlimo valor.
>> > Tenés que hacer que marker sea constante en la
>> > función onSuccess del getJSON, así:
>> >
>> >
>> > var marker = new L.Marker(location, {title:
>> > nombre, icon: myIcon});// creo el marcador
>> > //llamo a la api de foursquare
>> > $.getJSON(
>> > 'https://api.foursquare.com/v2/venues/'+fourID
>> >
>> +'/tips?sort=recent&limit=2&client_id=315YX0EUHY5VW5SFVCPIBMMVYTSNCXNML20AHEEDL1Q2TMEE&client_secret=HOJHGWETZPZYXLS2NYSPMUO0A4WO2UQCUHVWEAXQWAOWROZ2',
>> > (function(marker){
>> > return function(data2) {
>> > var tip1 = data2.response.tips.items[0].text;
>> > var tip2 = data2.response.tips.items[1].text;
>> > marker.bindPopup("<div class='popup'>" +
>> > "<span class='titulo'>"+ nombre +"</span>"
>> > +"</br>"+ dir +"</br>"+ tel +"</br>"+ tip1
>> > +"</br>"+ tip2 + "</div>", {maxWidth:
>> > '600'}); // creo el popup
>> > }
>> > })(marker)
>> > );
>> >
>> >
>> >
>> >
>> > Probalo y contame.
>> >
>> >
>> > Saludos!
>> >
>> >
>> >
>> >
>> > El 1 de junio de 2013 14:39, Cesar Gimenez
>> > Lascano <cesargimenezlascano en gmail.com>
>> > escribió:
>> >
>> > Hola Matias!! mil gracias x la
>> > respuesta!!, te envío directamente
>> > toda la pagina, espero se entienda el
>> > código. Lo que ves son varios links
>> > (alojamientos, comercios, etc) que al
>> > hacer click llaman a una función js
>> > (getAlojs(), getComes(), etc ) que
>> > trae datos desde la base de datos
>> > (primer llamada ajax) y con ellos
>> > crear una capa de marcadores y sus
>> > popups y agrega todo a un mapa, con la
>> > ayuda de una biblioteca js de mapping
>> > que se llama leaflet. La segunda
>> > llamada ajax (la que esta dentro del
>> > for) se realiza a un servidor remoto
>> > (la API del sitio foursquare en este
>> > caso), los popups contienen
>> > información proveniente de ambas
>> > llamadas, por eso no veo como asociar
>> > su creación a un evento onClick y los
>> > cacheo a todos. Fijate que las dos
>> > llamadas ajax las estoy probando solo
>> > en la función getResto(), el resto de
>> > los popups muestra solo info de la
>> > base de datos y anda a la perfección.
>> > Espero puedas ayudarme, saludos!!!
>> >
>> >
>> > El 1 de junio de 2013 14:04, Cesar
>> > Gimenez Lascano
>> > <cesargimenezlascano en gmail.com>
>> > escribió:
>> >
>> > Hola leo! gracias x la
>> > respuesta!.
>> > Efectivamente $.getJSON() hace
>> > una llamada AJAX asincrónica
>> > utilizando el framework JQuery
>> > (linkeo a documentación
>> > oficial x si sirve). Estuve
>> > revisando mejor el resultado y
>> > en realidad me muestra el
>> > ultimo popup, así que puede
>> > estar sucediendo lo que
>> > comentas del bucle, lo del
>> > nombre igual de variables no
>> > es el problema, si.
>> >
>> >
>> > El 31 de mayo de 2013 20:52,
>> > Leonardo Tadei - Pegasus Tech
>> > Supply
>> > <leonardot en pegasusnet.com.ar>
>> > escribió:
>> >
>> > Ufff... faltan muchos
>> > detalles para empezar
>> > a adivinar qué puede
>> > estar
>> >
>> > pasando!
>> >
>> > Asumiendo que
>> > $.getJSON() hace algún
>> > tipo de llamada AJAX
>> > usando el
>> > framework JQuery, y
>> > asumiendo que las
>> > llamadas sean
>> > asincrónicas, lo que
>> > puede estarte pasando
>> > es que las llamadas a
>> > $.getJSON() adentro
>> > del
>> > bucle no alcancen a
>> > terminar antes de que
>> > vuelva a ser invocada
>> > en el
>> > próximo ciclo.
>> >
>> > Si lo que se ve es la
>> > primera en vez de la
>> > última, supongo que es
>> > por la
>> > implementación de la
>> > biblioteca, pero
>> > habría que destriparla
>> > para estar
>> > seguros.
>> >
>> > No debe ser el
>> > problema, pero que
>> > ambas funciones
>> > anónimas usen como
>> > parámetro la variable
>> > "data" a mi de eriza
>> > los pelos de la nuca,
>> > por el
>> > ámbito de las
>> > variables en
>> > JavaScript respecto de
>> > las funciones, que es
>> > mucho más amplio que
>> > en otros lenguajes.
>> >
>> > Espero que alguien que
>> > sepa más que yo de
>> > JQuery nos ayude a
>> > entender
>> > qué es lo que pasa.
>> >
>> >
>> > El vie, 31-05-2013 a
>> > las 19:56 -0300, Cesar
>> > Gimenez Lascano
>> > escribió:
>> > > Hola, tengo un
>> > problema con un código
>> > para armar una capa de
>> > > marcadores, con su
>> > respectiva ventana de
>> > información (popups),
>> > y
>> > > agregarla a un mapa.
>> > El código como está
>> > crea todos los
>> > marcadores
>> > > pero solo el primer
>> > popup. Es que la
>> > función data del
>> > segundo llamado
>> > > $.getJSON se ejecuta
>> > solo una vez? o el
>> > mismo llamado?. Aclaro
>> > que el
>> > > popup se carga de
>> > información de las dos
>> > fuentes json por eso
>> > esta uno
>> > > dentro del otro.
>> > Espero puedan darme
>> > una mano!!!
>> > >
>> > >
>> > > $.getJSON("carga
>> > datos", function
>> > (data) {
>> > > for (var i
>> > = 0; i < data.length;
>> > i++) {
>> > > var
>> > nombre =
>> > data[i].nombre;
>> > > var dir
>> > = data[i].direccion;
>> > >
>> > $.getJSON("cargar
>> > otros datos",
>> > function(data) {
>> > > var var1= data.var1;
>> > > var var2= data.var2;
>> > > //crear popup
>> > > });
>> > > //crear
>> > marcador
>> > >
>> > //agregar marcador a
>> > la capa
>> > > } // fin
>> > del for
>> > >
>> >
>> }).complete(function() {
>> > > //agregar capa al
>> > mapa
>> > > });
>> > >
>> >
>> > >
>> >
>> _______________________________________________
>> > > Php-avanzado mailing
>> > list
>> > >
>> >
>> Php-avanzado en pato2.fi.mdp.edu.ar
>> > >
>> >
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>> >
>> > --
>> > Leonardo Tadei
>> >
>> leonardot en pegasusnet.com.ar
>> > Web:
>> >
>> http://leonardo.tadei.com.ar
>> > Firma pública:
>> >
>> http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>> >
>> >
>> _______________________________________________
>> > Php-avanzado mailing
>> > list
>> >
>> Php-avanzado en pato2.fi.mdp.edu.ar
>> >
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> _______________________________________________
>> > Php-avanzado mailing list
>> > Php-avanzado en pato2.fi.mdp.edu.ar
>> >
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>> >
>> >
>> >
>> >
>> > --
>> > Matias Fernando Gea
>> > matigea en gmail.com
>> > http://www.mfgea.com.ar
>> >
>> > _______________________________________________
>> > Php-avanzado mailing list
>> > Php-avanzado en pato2.fi.mdp.edu.ar
>> >
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>> >
>> >
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > Php-avanzado mailing list
>> > Php-avanzado en pato2.fi.mdp.edu.ar
>> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>>
>> --
>> Leonardo Tadei
>> leonardot en pegasusnet.com.ar
>> Web: http://leonardo.tadei.com.ar
>> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>>
>> _______________________________________________
>> Php-avanzado mailing list
>> Php-avanzado en pato2.fi.mdp.edu.ar
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>>
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
--
Matias Fernando Gea
matigea en gmail.com
http://www.mfgea.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20130603/1784812c/attachment-0001.html>
Más información sobre la lista de distribución Php-avanzado