Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    php e javascript, estrarre il nome di un albergo dal db

    Ragà è una cavolata sicuramente, ma non riesco ad estrarre il nome dell'albergo dal database.
    Praticamente ho una mappa di google della città dove faccio uscire tutti i marker prendendoli dal database.
    Cioè nel database ho segnato il nome dell'hotel, l'indirizzo per fare uscire la mappa e altre informazioni che mi servono.
    Adesso sulla mappa riesco a far uscire tutti i marker senza problemi, ma quando ci clicco sopra vorrei che uscisse il fumetto con il nome dell'albergo sul marker che ho cliccato.
    Ora come ora mi esce la parola deve uscire il nome dell'hotel.
    Come faccio ad estrarre il nome dell'albergo?
    Ho anche provato a mettere <?php echo "$hotel;";?> ma niente, mi usciva il fumetto vuoto.
    Mi date una mano?
    questo è il codice completo della mappa di google che sto utilizzando:

    Codice PHP:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAvvp5_0DlX_WgW_rUar8MaRRNFYGEXFHR2wFQ-ApwAJmf_coUyRTAEpObsxc5VBaAJwyup_6UsxZOKQ" type="text/javascript"></script>
    <script type="text/javascript">

    var map = null;
    var geocoder = null;
    var icon = icon;

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(40.727356,13.909893), 13);
            icon = new GIcon();
            icon.image = "http://www.sitomio.com/fig/marker.gif";
            icon.iconSize = new GSize(23, 34);
            icon.iconAnchor = new GPoint(6, 20);
           icon.infoWindowAnchor = new GPoint(5, 1);
        //map.setMapType(G_SATELLITE_MAP );
        geocoder = new GClientGeocoder();
      }
    }


    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " L'indirizzo segnalato per la mappa non è corretto" );
            } else {
              
              var marker = new GMarker(point, icon);
              map.addOverlay(marker);
              //I TRE RIGHI SOTTOSTANTI SERVONO PER CLICCARE SUL MARKER E FAR APPARIRE IL FUMETTO
    var html =  "deve uscire il nome dell'hotel";         
              GEvent.addListener(marker, "click", function() {
              marker.openInfoWindowHtml(html);
             
              });

            }
          }
        );
      }
    }
    </SCRIPT>
    </head>

    <body onload="load(); 

    <?php
    include("config.php");
    $sql "select hotel, indirizzo from albergo";
    $risultato = @mysql_query($sql,$connessione)
    or die(
    "Impossibile eseguire l'interrogazione.");
    while (
    $riga mysql_fetch_array($risultato)) {
    $hotel $riga['hotel'];
    $indirizzo $riga['indirizzo'];
    $indirizzi "showAddress('$indirizzo'); ";
    echo 
    $indirizzi;
    }
    ?>

    " onunload="GUnload();" topmargin="0" bgcolor="#7ca6ce" leftmargin="0" marginwidth="0" marginheight="0">
    <table width="790" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td>
          <div id="map" style="width: 790px; height: 550px"></div>
        </td>
      </tr>
    </table>
    </body>
    </html>

    Non penso sia difficile, ma c'è quel qualcosa che mi sfugge

  2. #2
    Utente di HTML.it L'avatar di PaoloC
    Registrato dal
    Jul 2007
    Messaggi
    21
    Prova così

    Codice PHP:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAvvp5_0DlX_WgW_rUar8MaRRNFYGEXFHR2wFQ-ApwAJmf_coUyRTAEpObsxc5VBaAJwyup_6UsxZOKQ" type="text/javascript"></script>
    <script type="text/javascript">

    var map = null;
    var geocoder = null;
    var icon = icon;

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(40.727356,13.909893), 13);
            icon = new GIcon();
            icon.image = "http://www.sitomio.com/fig/marker.gif";
            icon.iconSize = new GSize(23, 34);
            icon.iconAnchor = new GPoint(6, 20);
           icon.infoWindowAnchor = new GPoint(5, 1);
        //map.setMapType(G_SATELLITE_MAP );
        geocoder = new GClientGeocoder();
      }
    }


    function showAddress(address, hotel) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " L'indirizzo segnalato per la mappa non è corretto" );
            } else {
              
              var marker = new GMarker(point, icon);
              map.addOverlay(marker);
              //I TRE RIGHI SOTTOSTANTI SERVONO PER CLICCARE SUL MARKER E FAR APPARIRE IL FUMETTO
              var html =  'Hotel '+arrayInd[address]+' - Indirizzo: '+address;        
              GEvent.addListener(marker, "click", function() {
              marker.openInfoWindowHtml(html);
            
              });

            }
          }
        );
      }
    }
    var arrayInd = Array();
    </SCRIPT>
    </head>

    <body onload="load();

    <?php
    include("config.php");
    $sql "select hotel, indirizzo from albergo";
    $risultato = @mysql_query($sql,$connessione)
    or die(
    "Impossibile eseguire l'interrogazione.");
    while (
    $riga mysql_fetch_array($risultato)) {
    $hotel $riga['hotel'];
    $indirizzo $riga['indirizzo'];
    $indirizzi "showAddress('$indirizzo'); arrayInd['$indirizzo']='$hotel'; ";
    echo 
    $indirizzi;
    }
    ?>

    " onunload="GUnload();" topmargin="0" bgcolor="#7ca6ce" leftmargin="0" marginwidth="0" marginheight="0">
    <table width="790" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td>
          <div id="map" style="width: 790px; height: 550px"></div>
        </td>
      </tr>
    </table>
    </body>
    </html>

  3. #3
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    azz funziona:
    era questo che dovevo aggiustare?

    var html = 'Hotel '+arrayInd[address]+' - Indirizzo: '+address;

  4. #4
    Utente di HTML.it L'avatar di PaoloC
    Registrato dal
    Jul 2007
    Messaggi
    21
    anche
    $indirizzi = "showAddress('$indirizzo'); arrayInd['$indirizzo']='$hotel'; ";
    nel codice php

    e
    var arrayInd = Array();
    come dichiarazione di variabile globale in javascript

    Saluti

  5. #5
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da PaoloC
    anche
    $indirizzi = "showAddress('$indirizzo'); arrayInd['$indirizzo']='$hotel'; ";
    nel codice php

    e
    var arrayInd = Array();
    come dichiarazione di variabile globale in javascript

    Saluti
    si infatti ho visto proprio ora

    Quindi a questo punto se voglio inserire il link dell'albergo nel fumetto devo andare ad aggiungere anche il campo $link in $indirizzi e richiamare una funzione nuova al posto di arrayInd, giusto?

  6. #6
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    si ok, sono riuscito a mettere anche gli altri campi del db.
    Un un'ultima domanda:
    Ora che ho inserito l'immagine appena clicco sul marker mi esce inizialmente il fumetto con foto, nome hotel e link sfasciato, nel senso che il fumetto sta da na parte e il contenuto in un'altra.
    Quando ci riclicco da sopra esce bene.
    Come mai? Come si puo' risolvere?

  7. #7
    Utente di HTML.it L'avatar di PaoloC
    Registrato dal
    Jul 2007
    Messaggi
    21
    Detta così è un po' difficile da comprendere ... riesci a farmi vedere qualcosa online? ...
    Il problema potrebbe essere di css ... io di solito mi creo un div contenitore con una classe e lo uso per metterci dentro tutti i dati della vignetta. A questo punto dai css formatto tutto ...

  8. #8

    aiutate anche me?

    ciao ragazzi
    seguendo i vostri suggerimenti sto sistemando anche io la map di google

    il problema è che mi stampa sempre ISCHIA

    leggendo l'html del browser vedo che i valori vengono interpretati correttamente ma la mappa continua a puntare su ischia.

    codice:
    <body onload="load(); 
    
    showAddress('Piazza Salento, Gallipoli (Lecce)'); arrayInd['Piazza Salento, Gallipoli (Lecce)']='Hotel Prova Gallipoli';
    
    " onunload="GUnload();" topmargin="0" bgcolor="#7ca6ce" leftmargin="0" marginwidth="0" marginheight="0"> 
    <table width="790" border="0" cellspacing="0" cellpadding="0" align="center"> 
      <tr> 
        <td> 
          <div id="map" style="width: 790px; height: 550px"></div> 
        </td> 
      </tr> 
    </table> 
    </body>
    HEEEELLP MIIIIIIIIIIIIIII


    grazie,
    ---------------------------
    danielix05

  9. #9
    Utente di HTML.it L'avatar di PaoloC
    Registrato dal
    Jul 2007
    Messaggi
    21
    Ciao,
    il tuo problema nasce dal fatto che non hai cambiato le coordinate di partenza nella load(), quando si chiama la setCenter. Per rendere più dinamica la libreria potresti cambiarla in:

    Codice PHP:
    function load(lat,lng,zoom) {
      if (
    GBrowserIsCompatible()) {
        
    map = new GMap2(document.getElementById("map"));
        
    map.addControl(new GSmallMapControl());
        
    map.addControl(new GMapTypeControl());
        
    map.setCenter(new GLatLng(lat,lng), zoom);
            
    icon = new GIcon();
            
    icon.image "http://www.sitomio.com/fig/marker.gif";
            
    icon.iconSize = new GSize(2334);
            
    icon.iconAnchor = new GPoint(620);
           
    icon.infoWindowAnchor = new GPoint(51);
        
    //map.setMapType(G_SATELLITE_MAP );
        
    geocoder = new GClientGeocoder();
      }

    e quando la chiami scrivi:
    Codice PHP:
    <body onload="load(<lat>,<lng>,<zoom>); ... 
    sostituendo:
    <lat> con la latitudine iniziale
    <lng> con la longitudine iniziale
    <zoom> con lo zoom default
    saluti e buon weekend

  10. #10

    Problemi funzione Showaddress

    Ciao ragazzi ho un problema con questo codice.
    Il mio intento è quello di prelevare da un DB mySql il nome e la città dove abita per poi visualizzare sulla cartina un segnaposto. Solo che visualizza solo la cartina senza marker (visualizza solo quello di esempio su Genova).
    In cosa sbaglio.

    <script type="text/javascript" >
    var map=null;
    var arrayInd = Array();

    var icon=icon;


    function load()
    {
    if (GBrowserIsCompatible())
    {
    // Creazione della mappa
    map = new GMap2(document.getElementById("map"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setMapType(G_SATELLITE_MAP);
    map.setCenter(new GLatLng(41.795888, 12.250099), 6);
    var icon = new GIcon(G_DEFAULT_ICON);

    // si crea un punto: longitudine più latitudine
    // Creo un nuovo segnaposto (marker) nel punto specificato
    // lo rendo clickabile e al click associo una descrizione
    function createMarker(point, description)
    {
    var marker = new GMarker(point);
    var html = '<div style="width: 10px">' +description+ '</div>';
    GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
    });
    return marker;
    }


    //-----------------------------------------------
    // Ricerca di Lat e Long dell'indirizzo inserito
    //-----------------------------------------------

    // creo l'oggetto GClientGeocoder
    var geocoder = new GClientGeocoder();
    // l'indirizzo è proprio un testo, potrebbe essere anche solo una città
    var address = 'genova';
    geocoder.getLatLng(address,
    function(point)
    {
    if (!point)
    {
    // Indirizzo non trovato, cerca nel database.
    alert(address + " non trovato!");
    }
    else
    {



    // Crea il marker
    map.addOverlay(createMarker(point, address));
    }
    }
    );

    }

    }

    function showAddress(address, nome)
    {

    if (geocoder)
    {
    geocoder.getLatLng(
    address,
    function(point)
    {
    if (!point)
    {
    alert(address + " L'indirizzo segnalato per la mappa non è corretto" );
    } else
    {

    var marker = new GMarker(point, icon);
    map.addOverlay(marker);
    //I TRE RIGHI SOTTOSTANTI SERVONO PER CLICCARE SUL MARKER E FAR APPARIRE IL FUMETTO
    var html = 'Nome: '+arrayInd[address]+' - Città: '+address;
    GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);

    });
    }
    }
    );
    }
    }






    </script>

    <body onload="load()" onunload="GUnload()">
    <?php
    $mysqli = new mysqli('localhost', 'root', 'canguro50', 'novara');
    // ... eseguiamo le nostre operazioni ...
    $result = $mysqli->query("SELECT * FROM Osservatori", MYSQLI_USE_RESULT);

    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
    $nome = $row['Nome'];
    $indirizzo = $row['Citta'];
    $indirizzi = "showAddress('$indirizzo'); arrayInd['$indirizzo']='$nome; ";

    echo $indirizzi;


    }

    ?>


    <div id="map" style="width: 800px; height: 700px"></div>
    </body>


    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.