linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] [OT] JSON + Javascript

Diego Monselice info a diegomonselice.it
Mer 2 Mar 2011 13:07:28 UTC
Il giorno mer, 02/03/2011 alle 13.31 +0100, Michele Bonera ha scritto:
> Il giorno mer, 02/03/2011 alle 12.13 +0100, Diego Monselice ha scritto:
> 
> > Il giorno mer, 02/03/2011 alle 11.59 +0100, Andrea Occhi ha scritto:
> > > quando usavo Json con Javascript (ma anche con altri linguaggi) la mia
> > > bibbia era http://www.json.org/.
> > > Per Javascript in particolare http://www.json.org/js.html
> > > A mio parere non ti conviene usare Jquery (a meno che  lo usi poi per altro).
> > be'... e le alternative? Io non sono riuscito a fare ciò che voglio in
> > nessun modo...
> 
> Attenzione che i browser non ti permettono (o almeno così si comporta
> firefox della 10.04) di accedere con ajax fuori dal dominio, quindi ti
> devi scrivere un "proxy" in php che faccia la get a Google:
> 
> --------------------- fetch_json.php --------------------------
> <?php
> 
> $latlng = $_REQUEST['latlng'];
> $sensor = $_REQUEST['sensor'];
> $region = $_REQUEST['region'];
> 
> $url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=
> $latlng&sensor=$sensor&region=$region";
> $handle = fopen($url, "r");
> 
> if ($handle) {
> 	while (!feof($handle)) {
> 		$buffer = fgets($handle,4096);
> 		echo $buffer;
> 	}
> 	fclose($handle);
> }
> 
> ?>
> ----------------------- fine fetch_json.php -------------------
> 
> 
> Quindi fai una richiesta così (usa Jquery che ti semplifica la vita):
> 
> params = {
>   latlng : '45.539829,10.222957',
>   sensor : 'true',
>   region : 'it'
> }
> 
> $.ajax({
>   url: 'fetch_json.php',
>   type: 'get',
>   data: params,
>   dataType: 'json',
>   success: function(jsonobj) {
>     longName=jsonobj.results[0].address_components[0].long_name
>     $('#result').html("LongName="+longName)
>   }
> });

Grazie Michele,

allora... così sembra andare meglio ma abbiamo un problema di traduzione
caratteri. Javascript tenta di fare il GET a questo indirizzo:
http://localhost/guida_turistica/app/fetch_json.php?latlng=45.539829%
2C10.222957&sensor=true&region=it

tornando un errore 404 Not Found

a parte il fatto che il get dovrebbe farlo a fetch_json.php, e quindi
non capisco 'sto cavolo di errore... ad ogni modo:
nell'url che restituisce nell'errore, tra latitudine e longitudine
dovrebbe starci la "," al posto di "%2C" ho provato ad aggiungere nel
php il comando
$latlng = preg_replace("%2C", ",", $latlng);
ma non funge nemmeno così... forse è jscript che gestisce male la
cosa... tant'è che l'errore viene riscontrato da firebug nel file
http://code.jquery.com/jquery-1.5.js alla riga 7180...

sto decisamente impazzendo...!!!

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Diego Monselice

MSN: diegomonselice a hotmail.com
Yahoo! messenger: diegomonselice
Skype: diegomonselice
Cell. Tim: (+39) 339 25 68 172
Cell. Vodafone: (+39) 347 99 39 028
Web: http://www.diegomonselice.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




Maggiori informazioni sulla lista Lug