[Php-avanzado] consulta jquery para la tesis

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Lun Jun 3 12:37:49 ART 2013


Hola Cesar,

	perdón por el error de tipeo.
	Debería decir "devolverlo ya caRgado desde el servidor"

	Salu2


El dom, 02-06-2013 a las 11:28 -0300, Cesar Gimenez Lascano escribió:
> 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
>         
> 
> 
> _______________________________________________
> 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



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