Ricerca guidata per nomi di città

  • Creatore Discussione Creatore Discussione Maures
  • Data di inizio Data di inizio

Maures

Utente Attivo
25 Mar 2015
45
0
0
Buongiorno a tutti,
dovrei implementare una pagina in php per la ricerca e il successivo inserimento di una o più località all'interno di un database.
Ora, vorrei che questo inserimento fosse "a prova di scimmia" e volevo puntare soprattutto sulla ricerca.

Mi spiego meglio:
vorrei inserire un campo per l'inserimento del nome della città (o della località) che mostra dei suggerimenti man mano l'utente scrive il nome che sta cercando.
Non so se basare questi suggerimenti sui dati già presenti nel database, e in questo caso saprei già come fare, o se appoggiarmi a un database, se esiste, di tutte le città e località italiane.

Nel secondo caso eviterei di inserire controlli sul corretto inserimento del nome della città, oltre a reperire altre informazioni da inserire nel database, come la provincia per esempio.

Piccola chicca, ma superflua: mostrare una piccola mappa (google maps?) che mostra la città ricercata.

Qualche consiglio?

Grazie in anticipo a tutti.
 
questo esempio è interessante, ma richiede avere delle tabelle già popolate con tutti i nomi, ma non è attualmente fattibile nel mio caso perché, per evitare troppi dati, vengono inserite di volta in volta solo le città che servono.

una cosa che potrebbe servirmi è simile a questo esempio

qui si cerca per indirizzo, ma funziona anche solo con il nome delle città.
se potessi inserire anche una compilazione automatica sarebbe proprio ciò che cerco.
 
ciao
quello che avevo fatto io molto tempo fa (ma non so se googlemaps è cambiato) presupponeva che nel db delle località ci fosse anche la latitudine e la longitudine della stessa, ti schematizzo
in allegato il file zip di gmaps.js
PHP:
<!DOCTYPE HTML>
<html>
<head>
<!-- css ecc... -->
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="gmaps.js"></script>
</head>
<body>
<?php
//dati di connessione
//da un form selezioni la località, io avevo ricavato il suo id
$id=$_POST['id_localita'];
//per far prima uso le vecchie mysql
$query=mysql_query("SELECT lat, lon, nome FROM tabella WHERE id=$id");
$dati=mysql_fetch_array($query);
$latitudine=$dati['lat'];//espresse in gradi decimali es 45.3462 non ° min sec
$longitudine=$dati['lon'];
$nome=$dati['nome'];
?>
<script type="text/javascript">
	var map;
   $(document).ready(function(){
      map = new GMaps({
        div: '#map',
		lat: <?php echo $latitudine;?>,
		lng: <?php echo $longitudine;?>,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		zoom: 2
      });
      map.addMarker({
        lat: <?php echo $latitudine;?>,
        lng: <?php echo $longitudine;?>,
        title: '<?php echo $nome;?>',
      });
    });
</script>
      <div id="map"></div><!-- quia appare (dovrebbe) la mappa-->
</body>
</html>
provalo, non so se funziona ancora
 

Allegati

per la parte della mappa ho risolto, mi manca solo una ricerca "aiutata" per non inserire nomi errati delle località
 
ciao
per impedire l'inserimento errato (a prova di stupido) il metodo migliore è quello che ti avevo proposto col link, cioè si formano delle <select> in cui l'utente deve solo selezionare la località, non scriverle, se poi hai bisogno solo della località, es. solo il comune, senza regioni e province il metodo si semplifica senza bisogno di js
altro metodo è forse l'autocompletamento, ma meno sicuro
comunque i vari metodi presuppongono che tu abbia gia le tabelle del db precompilate con le località (giuste) almeno quelle che ti servono
 
ciao
per impedire l'inserimento errato (a prova di stupido) il metodo migliore è quello che ti avevo proposto col link, cioè si formano delle <select> in cui l'utente deve solo selezionare la località, non scriverle, se poi hai bisogno solo della località, es. solo il comune, senza regioni e province il metodo si semplifica senza bisogno di js
altro metodo è forse l'autocompletamento, ma meno sicuro
comunque i vari metodi presuppongono che tu abbia gia le tabelle del db precompilate con le località (giuste) almeno quelle che ti servono

quello che ho fatto ora è più o meno questo:

1) l'utente inserisce il nome della città che sta cercando
2) lo script gli restituisce una mappa di google con l'indicatore sulla città cercata (se esiste) con il marker con nome, provincia e cap
3) vengono compilati i relativi campi che, se confermati, vengono inseriti nel database (e lì farò un controllo sugli inserimenti doppi)

l'unica cosa che vorrei aggiungere è, come detto, l'inserimento guidato, ma non so se in google maps è presente un database di città a cui appoggiarsi. non posso creare altri db di località purtroppo.
 
ciao
non so se google ha già un db, ma dici che hai gia dei db (..non posso creare altri db di località purtroppo..) quindi qualcosa hai gia.
è da molto che non uso googlemaps quindi, come detto, non so se è cambiato qualcosa cioè cosa serva per visualizzare la mappa (nome o coordinate o altro)
se serve solo il nome della località basta che tu lo estragga dalla tabella che hai, se invece servono le coordinate probabilmente devi modificare le tabelle che hai aggiungendo dei campi e riempiendoli (aggiungendo i campi lat e long)
se ti sevono le coordinate (immagino che tu lo sappia) basta andare sulla mappa dove ti serve taso desto e sul menù contestuale selezioni "cosa c'è qui?" e ti saltano fuori le coordinate del punto cliccato
es. ho cliccato col dx su un punto di parma -> cosa c'è qui?
Vicolo Mauroner, 2A
43121 Parma PR
44.801028, 10.337698
dove i due numeri 44... e 10.. sono rispettivamente la lat e la long
certo se hai già tante località è una pizza, ma senza un po' di olio di gomito si ottiene poco
 
ciao
non so se google ha già un db, ma dici che hai gia dei db (..non posso creare altri db di località purtroppo..) quindi qualcosa hai gia.
è da molto che non uso googlemaps quindi, come detto, non so se è cambiato qualcosa cioè cosa serva per visualizzare la mappa (nome o coordinate o altro)
se serve solo il nome della località basta che tu lo estragga dalla tabella che hai, se invece servono le coordinate probabilmente devi modificare le tabelle che hai aggiungendo dei campi e riempiendoli (aggiungendo i campi lat e long)
se ti sevono le coordinate (immagino che tu lo sappia) basta andare sulla mappa dove ti serve taso desto e sul menù contestuale selezioni "cosa c'è qui?" e ti saltano fuori le coordinate del punto cliccato
es. ho cliccato col dx su un punto di parma -> cosa c'è qui?

dove i due numeri 44... e 10.. sono rispettivamente la lat e la long
certo se hai già tante località è una pizza, ma senza un po' di olio di gomito si ottiene poco


la tabella delle città che ho viene popolata quando serve.

lo scopo dello script è far vedere all'utente che deve inserire nella tabella una città due cose: che la città esista e che venga inserita correttamente (nel caso non sia già presente) nella tabella.

per i controlli non ci sono problemi, ma per l'appunto mi servirebbe che, mentre l'utente scriva, compaiano già dei suggerimenti, un po' come succede su google maps quando inserisco un indirizzo o una località.

mi chiedevo se si potesse usare questa funzionalità. non è un problema se non fosse possibile, ma provo a informarmi e se trovo qualcosa mi autorispondo
 

Discussioni simili