[Php-avanzado] consulta jquery para la tesis

Cesar Gimenez Lascano cesargimenezlascano en gmail.com
Dom Jun 2 11:28:20 ART 2013


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20130602/c39986ec/attachment-0001.html>


Más información sobre la lista de distribución Php-avanzado