1

I'm using the information on the question at Google Maps JS API v3 - Simple Multiple Marker Example

I'll report it:

<!DOCTYPE html>
<html> 
<head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  <title>Google Maps Multiple Markers</title> 
  <script src="http://maps.google.com/maps/api/js?sensor=false" 
          type="text/javascript"></script>
</head> 
<body>
  <div id="map" style="width: 500px; height: 400px;"></div>

  <script type="text/javascript">
    var locations = [
      ['Bondi Beach', -33.890542, 151.274856, 4],
      ['Coogee Beach', -33.923036, 151.259052, 5],
      ['Cronulla Beach', -34.028249, 151.157507, 3],
      ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
      ['Maroubra Beach', -33.950198, 151.259302, 1]
    ];

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center: new google.maps.LatLng(-33.92, 151.25),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map
      });

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
  </script>
</body>
</html>

It work but now I want to improve with locations on database.

var locations = [

<?php
while($row=mysql_fetch_array($resultqr)){
echo ("
  [".$row[nome].", ".$row[latitudine].", ".$row[longitudine].",],
");
}
?>

];

This code work on testpage but not inside the script in variable locations.

Database connect is on other php section outside the script.

Could you help me?

1
  • 1
    What does the HTML generated by that PHP look like? Commented Nov 15, 2013 at 19:41

1 Answer 1

3
echo json_encode(array_values($row));

Or, more guaranteed:

$arr = array($row['nome'], $row['latitudine'], $row['longitudine]');
echo json_encode($arr);

The problem in your hand-crafted js array is missing quotes around the strings.


Considering your full PHP code:

<?php
$locations = array();
while($row=mysql_fetch_array($resultqr)){
    $locations[] = array($row['nome'], $row['latitudine'], $row['longitudine']);
}
echo 'var locations = ' . json_encode($locations) . ';';
?>
Sign up to request clarification or add additional context in comments.

1 Comment

I found solution with little editing of first code but the new PHP full code you posted is better more than mine. Thanks for the help!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.