<div dir="ltr">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!!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 1 de junio de 2013 14:46, Matias Gea <span dir="ltr"><<a href="mailto:matigea@gmail.com" target="_blank">matigea@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">El problema lo tenés, probablemente acá:<div><div><span style="white-space:pre-wrap"> </span>var marker = new L.Marker(location, {title: nombre, icon: myIcon});// creo el marcador</div><div><span style="white-space:pre-wrap"> </span>//llamo a la api de foursquare</div>
<div><span style="white-space:pre-wrap"> </span>$.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) {</div>
<div><span style="white-space:pre-wrap"> </span>var tip1 = data2.response.tips.items[0].text;</div><div><span style="white-space:pre-wrap"> </span>var tip2 = data2.response.tips.items[1].text;</div><div><span style="white-space:pre-wrap"> </span>marker.bindPopup("<div class='popup'>" + "<span class='titulo'>"+ nombre +"</span>" +"</br>"+ dir +"</br>"+ tel +"</br>"+ tip1 +"</br>"+ tip2 + "</div>", {maxWidth: '600'});<span style="white-space:pre-wrap"> </span>// creo el popup<span style="white-space:pre-wrap"> </span></div>
<div><span style="white-space:pre-wrap"> </span>});</div></div><div><br></div><div>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í:</div>
<div><br></div><div><span style="white-space:pre-wrap"> </span>var marker = new L.Marker(location, {title: nombre, icon: myIcon});// creo el marcador</div><div><span style="white-space:pre-wrap"> </span>//llamo a la api de foursquare</div>
<div><span style="white-space:pre-wrap"> </span>$.getJSON(</div><div><span style="white-space:pre-wrap"> </span>'<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>',</div>
<div><span style="white-space:pre-wrap"> </span>(function(marker){</div><div><span style="white-space:pre-wrap"> </span>return function(data2) {</div><div><span style="white-space:pre-wrap"> </span>var tip1 = data2.response.tips.items[0].text;</div>
<div><span style="white-space:pre-wrap"> </span>var tip2 = data2.response.tips.items[1].text;</div><div><span style="white-space:pre-wrap"> </span>marker.bindPopup("<div class='popup'>" + "<span class='titulo'>"+ nombre +"</span>" +"</br>"+ dir +"</br>"+ tel +"</br>"+ tip1 +"</br>"+ tip2 + "</div>", {maxWidth: '600'});<span style="white-space:pre-wrap"> </span>// creo el popup<span style="white-space:pre-wrap"> </span></div>
<div><span style="white-space:pre-wrap"> </span>}</div><div><span style="white-space:pre-wrap"> </span>})(marker)</div><div><span style="white-space:pre-wrap"> </span>);</div><div><br></div><div>
<br></div><div>Probalo y contame.</div><div><br></div><div>Saludos! </div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 1 de junio de 2013 14:39, Cesar Gimenez Lascano <span dir="ltr"><<a href="mailto:cesargimenezlascano@gmail.com" target="_blank">cesargimenezlascano@gmail.com</a>></span> escribió:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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 <a href="http://leafletjs.com/" target="_blank">leaflet</a>. 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. <b style="background-color:rgb(255,0,0)">Fijate que las dos llamadas ajax las estoy probando solo en la función getResto()</b>, el resto de los popups muestra solo info de la base de datos y anda a la perfección. Espero puedas ayudarme, saludos!!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 1 de junio de 2013 14:04, Cesar Gimenez Lascano <span dir="ltr"><<a href="mailto:cesargimenezlascano@gmail.com" target="_blank">cesargimenezlascano@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hola leo! gracias x la respuesta!. Efectivamente <span style="font-family:arial,sans-serif;font-size:13px"><a href="http://api.jquery.com/jQuery.getJSON/" target="_blank">$.getJSON()</a> hace una llamada AJAX </span><font face="arial, sans-serif">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.</font></div>
<div class="gmail_extra"><br><br><div class="gmail_quote"><div>El 31 de mayo de 2013 20:52, 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>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ufff... faltan muchos detalles para empezar a adivinar qué puede estar<div><div><br>
pasando!<br>
<br>
Asumiendo que $.getJSON() hace algún tipo de llamada AJAX usando el<br>
framework JQuery, y asumiendo que las llamadas sean asincrónicas, lo que<br>
puede estarte pasando es que las llamadas a $.getJSON() adentro del<br>
bucle no alcancen a terminar antes de que vuelva a ser invocada en el<br>
próximo ciclo.<br>
<br>
Si lo que se ve es la primera en vez de la última, supongo que es por la<br>
implementación de la biblioteca, pero habría que destriparla para estar<br>
seguros.<br>
<br>
No debe ser el problema, pero que ambas funciones anónimas usen como<br>
parámetro la variable "data" a mi de eriza los pelos de la nuca, por el<br>
ámbito de las variables en JavaScript respecto de las funciones, que es<br>
mucho más amplio que en otros lenguajes.<br>
<br>
Espero que alguien que sepa más que yo de JQuery nos ayude a entender<br>
qué es lo que pasa.<br>
<br>
<br>
El vie, 31-05-2013 a las 19:56 -0300, Cesar Gimenez Lascano escribió:<br>
<div><div>> Hola, tengo un problema con un código para armar una capa de<br>
> marcadores, con su respectiva ventana de información (popups), y<br>
> agregarla a un mapa. El código como está crea todos los marcadores<br>
> pero solo el primer popup. Es que la función data del segundo llamado<br>
> $.getJSON se ejecuta solo una vez? o el mismo llamado?. Aclaro que el<br>
> popup se carga de información de las dos fuentes json por eso esta uno<br>
> dentro del otro. Espero puedan darme una mano!!!<br>
><br>
><br>
> $.getJSON("carga datos", function (data) {<br>
> for (var i = 0; i < data.length; i++) {<br>
> var nombre = data[i].nombre;<br>
> var dir = data[i].direccion;<br>
> $.getJSON("cargar otros datos", function(data) {<br>
> var var1= data.var1;<br>
> var var2= data.var2;<br>
> //crear popup<br>
> });<br>
> //crear marcador<br>
> //agregar marcador a la capa<br>
> } // fin del for<br>
> }).complete(function() {<br>
> //agregar capa al mapa<br>
> });<br>
><br>
</div></div>> _______________________________________________<br>
> Php-avanzado mailing list<br>
> <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar" target="_blank">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>
<span><font color="#888888"><br>
--<br>
Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">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" target="_blank">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>
</font></span></div></div></blockquote></div><br></div>
</blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar" target="_blank">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></blockquote></div></div></div><br><br clear="all"><div><br>
</div>-- <br><div class="im">
Matias Fernando Gea<br><a href="mailto:matigea@gmail.com" target="_blank">matigea@gmail.com</a><br><a href="http://www.mfgea.com.ar" target="_blank">http://www.mfgea.com.ar</a>
</div></div>
<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></blockquote></div><br></div>