Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmienna php do js
Forum PHP.pl > Forum > PHP
kujawska
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>
windman
logiczne, gdyż po zakończeniu pętli zmienna $mc ma ostatnią wartość jaką wyrzucila pętla.

Jedno rozwiązanie to takie, aby wartość zmiennej $ms przenieść do js jako argument funkcji mapaStart()

onclick=\"mapaStart('<?=$zmienna?>')\
kujawska
Spróbuję ale co zmienić w js?
windman
funkcja powinna wyglądać tak

mapaStart(adres) /dodałem tylko argument adres
z dalszej części skryptu wywal: var adres
a linki wyświetlaj tak:

echo "<a href=\"#\" onclick=\"mapaStart('<?=$twoja_zmienna?>')\">Mapka</a>";

powinno być oczywiście tak:
echo "<a href=\"#\" onclick=\"mapaStart('$twoja_zmienna')\">Mapka</a>";


powinno działać
kujawska
DZIAŁA!!! WINDMAN JESTEŚ GENIALNY.STOKROTNE DZIĘKI
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.