<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>