[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