<div dir="ltr">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!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 1 de junio de 2013 19:15, Leonardo Tadei - Pegasus Tech Supply <span dir="ltr"><<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Cesar:<br>
<br>
        Quiero volver a una cuestión que Matías platea muy correctamente: no<br>
tiene sentido hacer varias llamadas AJAX en un bucle, porque si te hace<br>
falta todo esto, devolvelo ya cargado desde el servidor y listo!<br>
        Más allá del problema de sintaxis que haya, no es un uso razonable de<br>
AJAX, ya que es más lento todo esto que cargar los valores desde el<br>
principio.<br>
<br>
        Acordate del "principio de programación KISS" !!!<br>
<br>
<br>
<br>
El sáb, 01-06-2013 a las 15:52 -0300, Cesar Gimenez Lascano escribió:<br>
<div class="HOEnZb"><div class="h5">> la del ultimo registro de la tabla de la base de datos<br>
><br>
><br>
> El 1 de junio de 2013 15:51, Cesar Gimenez Lascano<br>
> <<a href="mailto:cesargimenezlascano@gmail.com">cesargimenezlascano@gmail.com</a>> escribió:<br>
>         perdón mati, me adelante. El popup muestra bien la info de la<br>
>         segunda llamada, pero de la primera muestra en todos los<br>
>         popups la misma info.<br>
><br>
><br>
>         El 1 de junio de 2013 15:36, Cesar Gimenez Lascano<br>
>         <<a href="mailto:cesargimenezlascano@gmail.com">cesargimenezlascano@gmail.com</a>> escribió:<br>
><br>
>                 Genio Matias!!! anduvo de 10!!!! ahí entendí cual era<br>
>                 mi error, muchas gracias de verdad.Ya que estoy y sin<br>
>                 animo de abusar quisiera preguntarte, necesito tmb que<br>
>                 el popup muestre información de una llamada ajax mas,<br>
>                 donde encajaría en el nuevo código que me pasaste?<br>
>                 abrazo!!!<br>
><br>
><br>
>                 El 1 de junio de 2013 14:46, Matias Gea<br>
>                 <<a href="mailto:matigea@gmail.com">matigea@gmail.com</a>> escribió:<br>
><br>
>                         El problema lo tenés, probablemente acá:<br>
>                         var marker = new L.Marker(location, {title:<br>
>                         nombre, icon: myIcon});// creo el marcador<br>
>                         //llamo a la api de foursquare<br>
>                         $.getJSON('<a href="https://api.foursquare.com/v2/venues/'+fourID+'/tips?sort=recent&limit=2&client_id=315YX0EUHY5VW5SFVCPIBMMVYTSNCXNML20AHEEDL1Q2TMEE&client_secret=HOJHGWETZPZYXLS2NYSPMUO0A4WO2UQCUHVWEAXQWAOWROZ2" target="_blank">https://api.foursquare.com/v2/venues/'+fourID+'/tips?sort=recent&limit=2&client_id=315YX0EUHY5VW5SFVCPIBMMVYTSNCXNML20AHEEDL1Q2TMEE&client_secret=HOJHGWETZPZYXLS2NYSPMUO0A4WO2UQCUHVWEAXQWAOWROZ2</a>', function(data2) {<br>

>                         var tip1 = data2.response.tips.items[0].text;<br>
>                         var tip2 = data2.response.tips.items[1].text;<br>
>                         marker.bindPopup("<div class='popup'>" +<br>
>                         "<span class='titulo'>"+ nombre +"</span>"<br>
>                         +"</br>"+ dir +"</br>"+ tel +"</br>"+ tip1<br>
>                         +"</br>"+ tip2 + "</div>", {maxWidth:<br>
>                         '600'}); // creo el popup<br>
>                         });<br>
><br>
><br>
>                         Fijate que estás declarando una variable<br>
>                         marker (en el for) y la utilizás para<br>
>                         relacionar el popup después que se resuelve el<br>
>                         request asincrónico. En ese momento (cuando<br>
>                         terminan los requests) ya finalizó hace rato<br>
>                         el for y marker queda con el útlimo valor.<br>
>                         Tenés que hacer que marker sea constante en la<br>
>                         función onSuccess del getJSON, así:<br>
><br>
><br>
>                         var marker = new L.Marker(location, {title:<br>
>                         nombre, icon: myIcon});// creo el marcador<br>
>                         //llamo a la api de foursquare<br>
>                         $.getJSON(<br>
>                         '<a href="https://api.foursquare.com/v2/venues/'+fourID" target="_blank">https://api.foursquare.com/v2/venues/'+fourID</a><br>
>                         +'/tips?sort=recent&limit=2&client_id=315YX0EUHY5VW5SFVCPIBMMVYTSNCXNML20AHEEDL1Q2TMEE&client_secret=HOJHGWETZPZYXLS2NYSPMUO0A4WO2UQCUHVWEAXQWAOWROZ2',<br>
>                         (function(marker){<br>
>                         return function(data2) {<br>
>                         var tip1 = data2.response.tips.items[0].text;<br>
>                         var tip2 = data2.response.tips.items[1].text;<br>
>                         marker.bindPopup("<div class='popup'>" +<br>
>                         "<span class='titulo'>"+ nombre +"</span>"<br>
>                         +"</br>"+ dir +"</br>"+ tel +"</br>"+ tip1<br>
>                         +"</br>"+ tip2 + "</div>", {maxWidth:<br>
>                         '600'}); // creo el popup<br>
>                         }<br>
>                         })(marker)<br>
>                         );<br>
><br>
><br>
><br>
><br>
>                         Probalo y contame.<br>
><br>
><br>
>                         Saludos!<br>
><br>
><br>
><br>
><br>
>                         El 1 de junio de 2013 14:39, Cesar Gimenez<br>
>                         Lascano <<a href="mailto:cesargimenezlascano@gmail.com">cesargimenezlascano@gmail.com</a>><br>
>                         escribió:<br>
><br>
>                                 Hola Matias!! mil gracias x la<br>
>                                 respuesta!!, te envío directamente<br>
>                                 toda la pagina, espero se entienda el<br>
>                                 código. Lo que ves son varios links<br>
>                                 (alojamientos, comercios, etc) que al<br>
>                                 hacer click llaman a una función js<br>
>                                 (getAlojs(), getComes(), etc ) que<br>
>                                 trae datos desde la base de datos<br>
>                                 (primer llamada ajax) y con ellos<br>
>                                 crear una capa de marcadores y sus<br>
>                                 popups y agrega todo a un mapa, con la<br>
>                                 ayuda de una biblioteca js de mapping<br>
>                                 que se llama leaflet. La segunda<br>
>                                 llamada ajax (la que esta dentro del<br>
>                                 for) se realiza a un servidor remoto<br>
>                                 (la API del sitio foursquare en este<br>
>                                 caso), los popups contienen<br>
>                                 información proveniente de ambas<br>
>                                 llamadas, por eso no veo como asociar<br>
>                                 su creación a un evento onClick y los<br>
>                                 cacheo a todos. Fijate que las dos<br>
>                                 llamadas ajax las estoy probando solo<br>
>                                 en la función getResto(), el resto de<br>
>                                 los popups muestra solo info de la<br>
>                                 base de datos y anda a la perfección.<br>
>                                 Espero puedas ayudarme, saludos!!!<br>
><br>
><br>
>                                 El 1 de junio de 2013 14:04, Cesar<br>
>                                 Gimenez Lascano<br>
>                                 <<a href="mailto:cesargimenezlascano@gmail.com">cesargimenezlascano@gmail.com</a>><br>
>                                 escribió:<br>
><br>
>                                         Hola leo! gracias x la<br>
>                                         respuesta!.<br>
>                                         Efectivamente $.getJSON() hace<br>
>                                         una llamada AJAX asincrónica<br>
>                                         utilizando el framework JQuery<br>
>                                         (linkeo a documentación<br>
>                                         oficial x si sirve). Estuve<br>
>                                         revisando mejor el resultado y<br>
>                                         en realidad me muestra el<br>
>                                         ultimo popup, así que puede<br>
>                                         estar sucediendo lo que<br>
>                                         comentas del bucle, lo del<br>
>                                         nombre igual de variables no<br>
>                                         es el problema, si.<br>
><br>
><br>
>                                         El 31 de mayo de 2013 20:52,<br>
>                                         Leonardo Tadei - Pegasus Tech<br>
>                                         Supply<br>
>                                         <<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a>><br>
>                                         escribió:<br>
><br>
>                                                 Ufff... faltan muchos<br>
>                                                 detalles para empezar<br>
>                                                 a adivinar qué puede<br>
>                                                 estar<br>
><br>
>                                                 pasando!<br>
><br>
>                                                 Asumiendo que<br>
>                                                 $.getJSON() hace algún<br>
>                                                 tipo de llamada AJAX<br>
>                                                 usando el<br>
>                                                 framework JQuery, y<br>
>                                                 asumiendo que las<br>
>                                                 llamadas sean<br>
>                                                 asincrónicas, lo que<br>
>                                                 puede estarte pasando<br>
>                                                 es que las llamadas a<br>
>                                                 $.getJSON() adentro<br>
>                                                 del<br>
>                                                 bucle no alcancen a<br>
>                                                 terminar antes de que<br>
>                                                 vuelva a ser invocada<br>
>                                                 en el<br>
>                                                 próximo ciclo.<br>
><br>
>                                                 Si lo que se ve es la<br>
>                                                 primera en vez de la<br>
>                                                 última, supongo que es<br>
>                                                 por la<br>
>                                                 implementación de la<br>
>                                                 biblioteca, pero<br>
>                                                 habría que destriparla<br>
>                                                 para estar<br>
>                                                 seguros.<br>
><br>
>                                                 No debe ser el<br>
>                                                 problema, pero que<br>
>                                                 ambas funciones<br>
>                                                 anónimas usen como<br>
>                                                 parámetro la variable<br>
>                                                 "data" a mi de eriza<br>
>                                                 los pelos de la nuca,<br>
>                                                 por el<br>
>                                                 ámbito de las<br>
>                                                 variables en<br>
>                                                 JavaScript respecto de<br>
>                                                 las funciones, que es<br>
>                                                 mucho más amplio que<br>
>                                                 en otros lenguajes.<br>
><br>
>                                                 Espero que alguien que<br>
>                                                 sepa más que yo de<br>
>                                                 JQuery nos ayude a<br>
>                                                 entender<br>
>                                                 qué es lo que pasa.<br>
><br>
><br>
>                                                 El vie, 31-05-2013 a<br>
>                                                 las 19:56 -0300, Cesar<br>
>                                                 Gimenez Lascano<br>
>                                                 escribió:<br>
>                                                 > Hola, tengo un<br>
>                                                 problema con un código<br>
>                                                 para armar una capa de<br>
>                                                 > marcadores, con su<br>
>                                                 respectiva ventana de<br>
>                                                 información (popups),<br>
>                                                 y<br>
>                                                 > agregarla a un mapa.<br>
>                                                 El código como está<br>
>                                                 crea todos los<br>
>                                                 marcadores<br>
>                                                 > pero solo el primer<br>
>                                                 popup. Es que la<br>
>                                                 función data del<br>
>                                                 segundo llamado<br>
>                                                 > $.getJSON se ejecuta<br>
>                                                 solo una vez? o el<br>
>                                                 mismo llamado?. Aclaro<br>
>                                                 que el<br>
>                                                 > popup se carga de<br>
>                                                 información de las dos<br>
>                                                 fuentes json por eso<br>
>                                                 esta uno<br>
>                                                 > dentro del otro.<br>
>                                                 Espero puedan darme<br>
>                                                 una mano!!!<br>
>                                                 ><br>
>                                                 ><br>
>                                                 >  $.getJSON("carga<br>
>                                                 datos", function<br>
>                                                 (data) {<br>
>                                                 >           for (var i<br>
>                                                 = 0; i < data.length;<br>
>                                                 i++) {<br>
>                                                 >             var<br>
>                                                 nombre =<br>
>                                                 data[i].nombre;<br>
>                                                 >             var dir<br>
>                                                 = data[i].direccion;<br>
>                                                 ><br>
>                                                 $.getJSON("cargar<br>
>                                                 otros datos",<br>
>                                                 function(data) {<br>
>                                                 > var var1= data.var1;<br>
>                                                 > var var2= data.var2;<br>
>                                                 > //crear popup<br>
>                                                 > });<br>
>                                                 >             //crear<br>
>                                                 marcador<br>
>                                                 ><br>
>                                                   //agregar marcador a<br>
>                                                 la capa<br>
>                                                 >           } // fin<br>
>                                                 del for<br>
>                                                 ><br>
>                                                   }).complete(function() {<br>
>                                                 > //agregar capa al<br>
>                                                 mapa<br>
>                                                 > });<br>
>                                                 ><br>
><br>
>                                                 ><br>
>                                                 _______________________________________________<br>
>                                                 > Php-avanzado mailing<br>
>                                                 list<br>
>                                                 ><br>
>                                                 <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
>                                                 ><br>
>                                                 <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
><br>
>                                                 --<br>
>                                                 Leonardo Tadei<br>
>                                                 <a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
>                                                 Web:<br>
>                                                 <a href="http://leonardo.tadei.com.ar" target="_blank">http://leonardo.tadei.com.ar</a><br>
>                                                 Firma pública:<br>
>                                                 <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
><br>
>                                                 _______________________________________________<br>
>                                                 Php-avanzado mailing<br>
>                                                 list<br>
>                                                 <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
>                                                 <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
><br>
><br>
><br>
><br>
><br>
><br>
>                                 _______________________________________________<br>
>                                 Php-avanzado mailing list<br>
>                                 <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
>                                 <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
><br>
><br>
><br>
><br>
>                         --<br>
>                         Matias Fernando Gea<br>
>                         <a href="mailto:matigea@gmail.com">matigea@gmail.com</a><br>
>                         <a href="http://www.mfgea.com.ar" target="_blank">http://www.mfgea.com.ar</a><br>
><br>
>                         _______________________________________________<br>
>                         Php-avanzado mailing list<br>
>                         <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
>                         <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
><br>
><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> Php-avanzado mailing list<br>
> <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
<br>
--<br>
Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
Web: <a href="http://leonardo.tadei.com.ar" target="_blank">http://leonardo.tadei.com.ar</a><br>
Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
<br>
_______________________________________________<br>
Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
<a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
</div></div></blockquote></div><br></div>