[Php-avanzado] consulta jquery para la tesis
Cesar Gimenez Lascano
cesargimenezlascano en gmail.com
Sab Jun 1 15:52:09 ART 2013
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 <http://leafletjs.com/>. 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()<http://api.jquery.com/jQuery.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
>>>
>>
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20130601/8588131b/attachment-0001.html>
Más información sobre la lista de distribución Php-avanzado