Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    1

    Problema comunicazione PHP con JavaScript nella visualizzazione di marker su google maps

    Salve, ho una tabella nel mio database chiamata scuole che contiene molti attributi tra cui nomeScuola, indirizzoScuola, lat (latitudine), lng (longitudine). Il mio scopo era quello di stampare più marker su una mappa google con dati ricavati dal database. Il problema fondamentalmente è che, se faccio una select dal database di una sola riga senza gestire gli array il codice mi funziona e quindi mi stampa il marker della riga richiesta, mentre se eseguo il codice che ho riportato qui sotto non si vede nessun marker e la mappa mi compare quindi vuota.. AIUTATEMI VI PREGOOOO

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>


    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&language=it"></script>




    <?php
    mysql_connect("localhost","root","") or die ("Err Connessione!");
    $db=mysql_select_db("SBSVr") or die ("Err DB!");
    $sql="SELECT nomeScuola, indirizzoScuola, lat, lng FROM scuole";
    $ris=mysql_query($sql) or die ("Err Query!");
    $ct=0;
    while($riga=mysql_fetch_array($ris))
    {
    $nomeScuola[$ct]=$riga["nomeScuola"];
    $indirizzoScuola[$ct]=$riga["indirizzoScuola"];
    $lat[$ct]=$riga["lat"];
    $lng[$ct]=$riga["lng"];
    $ct++;
    }
    ?>




    <script type="text/javascript">
    var ct = "<?= $ct; ?>";
    var nomeScuola[];
    var indirizzoScuola[];
    var lat[];
    var lng[];
    for(c=0; c<ct; c++)
    {
    nomeScuola[c] = "<?= $nomeScuola[c]; ?>";
    indirizzoScuola[c] = "<?= $indirizzoScuola[c]; ?>";
    lat[c] = "<?= $lat[c]; ?>";
    lng[c] = "<?= $lng[c]; ?>";
    }
    </script>

    </head>



    <body onLoad="inizializza()">
    <h1>Dove siamo</h1>

    <div id="map" style="width:680px;height:500px;"></div>

    <script type="text/javascript">
    function inizializza() {

    // fornisce latitudine e longitudine
    var latlng = new google.maps.LatLng(45.422613, 11.063912);

    // imposta le opzioni di visualizzazione
    var options = { zoom: 9,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    // crea l'oggetto mappa
    var map = new google.maps.Map(document.getElementById('map'), options);

    for(c=0; c<ct; c++)
    {
    var posScuola= new google.maps.LatLng(lat[c],lng[c]);
    var marker = new google.maps.Marker({ position: posScuola,
    map: map,
    title: nomeScuola[c] });




    var stringa= "<strong>"+nomeScuola[c]+"</strong><br />"+indirizzoScuola[c]+"<br />";




    var infowindow= new google.maps.InfoWindow(
    {
    content: stringa,
    });
    google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map, marker) });

    }
    }


    </script>
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, probabilmente perchè dove assegni le variabili JS da php usi C che è di JS e non viene interpretato da PHP.
    Secondo me sarebbe molto piu' comodo fare un array diversamente in php
    Codice PHP:
    $ct=0;
    $scuole = array();
    while(
    $riga=mysql_fetch_array($ris))
    {
    $scuole[$ct]['nomeScuole'] = $riga["nomeScuola"];
    $scuole[$ct]['indirizzoScuola'] = $riga["indirizzoScuola"];
    $scuole[$ct]['lat'] = $riga["lat"];
    $scuole[$ct]['long'] = $riga["long"];
    $ct++;

    A questo punto nel js potresti fare
    codice:
    var scuole = <?php echo json_encode($scuole); ?>
    Se provi a quindi a fare un console.log(scuole) vedrei il tuo object scuole formattato da ciclare comodamente.

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.