Bonjour à tous,


Je m'intéresse aujourd'hui à l'API de google maps v3.

Je l'utilise avec php et mysql pour géolocaliser mes clients depuis leur adresse (convertit en latitude et longitude)

Je cherche à ouvrir une infobulle depuis le nom du client qui apparaitrais dans une liste à coté (générée depuis une boucle)



J'ai donc recherché dans le fofo de developpez et j'ai rien trouvé qui se rapprocherais de mon sujet

Voici le code à proprement parler:

Page phpsqlajax_map_v4.php

Javascript
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js"></script>
    <script type="text/javascript">
    //<![CDATA[
 
    var customIcons = {
	  restaurant: {
        icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png'
      },
      bar: {
        icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png'
      }
    };
 
    function load() {
      var map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(46.70, 2.00),
        zoom: 6,
        mapTypeId: 'roadmap'
      });
      var infoWindow = new google.maps.InfoWindow;
 
      // Change this depending on the name of your PHP file
      downloadUrl("phpsqlajax_genxml.php", function(data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          var name = markers[i].getAttribute("name");
          var address = markers[i].getAttribute("address");
          var type = markers[i].getAttribute("type");
		  var nument = markers[i].getAttribute("nument");
          var point = new google.maps.LatLng(
              parseFloat(markers[i].getAttribute("lat")),
              parseFloat(markers[i].getAttribute("lng")));
          var html = "<b><a href='fiche_client.php?client=" + nument + "'>" + name + "</a></b><br/>" + [i] + " <br/>" + address;
          var icon = customIcons[type] || {};
          var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon
          });
          bindInfoWindow(marker, map, infoWindow, html);
        }
      });
    }
 
    function bindInfoWindow(marker, map, infoWindow, html) {
      google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
      });
    }
 
    function downloadUrl(url, callback) {
      var request = window.ActiveXObject ?
          new ActiveXObject('Microsoft.XMLHTTP') :
          new XMLHttpRequest;
 
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          request.onreadystatechange = doNothing;
          callback(request, request.status);
        }
      };
 
      request.open('GET', url, true);
      request.send(null);
    }
 
    function doNothing() {}
 
    //]]>
 
  </script>
 
  <body onload="load()">
    <div id="map" style="width: 100%; height: 550px;display:block;"></div>
  </body>
Page de boucle client
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<div>
	<? include('phpsqlajax_map_v4.php');?>
</div>
<div>
<script>
	$(".nomDeLaClasse").click(function(){
	infoWindow.open(map, marker));
	return false; /* permet de ne pas actualiser la page */
	});
</script>
<?
	$reponseENT = $bdd->query('
	SELECT *
	FROM client
	WHERE adresse !=""
	AND archive = "FAUX"
	');
	while($repE = $reponseENT->fetchObject())
		{
	?>	
		<p><a class="nomDeLaClasse"><? echo $repE->Nom." ".$repE->dpt;?></a></p>
	<?
		}
	?>
</div>

Seriez-vous en mesure de me donner une idée de la manière dont je dois m'y prendre ?

Merci