Mam problem i proszę o pomoc w rozwiązaniu.
Otóż w php pętlą wyświetlam adresy z mysql.Chcę do każdego adresu dodać mapkę poprzez geocoding w locie.Dodałem href w pętli do js a tam do właściwej zmiennej <? echo $mc; ?>.
Owszem działa ale niezależnie,który href odpalić zawsze wyświetla mapkę ostatniej pozycji z pętli.
Nie znam js ale przypuszczam,że problem jest prozaiczny.
Pętla tak wygląda:
while($wiersz = mysql_fetch_assoc($wynik)) {
echo "<div style=\"background:yellow;margin:2px;\">";
echo "<div>{$wiersz['miejscowosc']}</div>";
echo "<div>{$wiersz['ulica']}</div>";
$mc=$wiersz['miejscowosc'];
$ua=$wiersz['ulica'];
echo "<a href=\"#\" onclick=\"mapaStart()\">Mapka</a>";
echo "</div>";
}
A js tak:
<div id='mapka'>
<script type='text/javascript'>
<!--
// zmienne globalne
var geo;
var mapa;
function mapaStart()
{
if(GBrowserIsCompatible())
{
mapa = new GMap2(document.getElementById('mapka'),{mapTypes: [G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP]});
mapa.setCenter(new GLatLng(53.429805, 14.537883), 15);
// kontrolki mapy
mapa.addControl(new GLargeMapControl());
var typyMapy = mapa.getMapTypes();
typyMapy[0].getName= function() { return 'Mapa';}
typyMapy[1].getName = function() { return 'Satelita';}
typyMapy[2].getName = function() { return 'Hybryda';}
mapa.addControl(new GMapTypeControl());
mapa.addControl(new GOverviewMapControl());
mapa.addControl(new GScaleControl());
// nowy obiekt do geokodowania
geo = new GClientGeocoder();
var adres= '<? echo $mc; ?>';
geo.getLatLng(adres,function(punkt)
{
if (!punkt)
{
// jeśli punkt nie istnieje, to adres nie został znaleziony
alert(adres + ' nie został znaleziony!');
}
else
{
// centrujemy na znalezionym punkcie
mapa.setCenter(punkt, 15);
// dodajemy w tym miejscu marker
var ikona = new GIcon();
ikona.image='http://maps.google.com/mapfiles/kml/pal3/icon52.png';
ikona.shadow='';
ikona.iconSize=new GSize(32,32);
ikona.iconAnchor=new GPoint(16,16);
ikona.infoWindowAnchor=new GPoint(16,16);
var marker = new GMarker(punkt,{icon: ikona, title: adres});
mapa.addOverlay(marker);
// i otwieramy dymek z adresem
marker.openInfoWindowHtml('<strong>Poszukiwany adres</strong><br />'+adres);
}
});
}
}
-->
</script>
</div>