Skocz do zawartości

Problem z fragmentem kodu google api


stefan_96

Rekomendowane odpowiedzi

Witajcie, mam pewien problem z mapką, był bym bardzo wdzięczny gdybyście mi coś wyjaśnili otóż: mam taki kod

print "<input class=\"inputbox\" type=\"text\" name=\"city\" value=\"".filterformread($city, 1)."\" size=\"41\" maxlength=\"64\" id=\"miasto\" />";

i

print "<input class=\"inputbox\" type=\"text\" name=\"street\" value=\"".filterformread($street, 1)."\" size=\"50\" maxlength=\"64\" id=\"ulica\"

Teraz potrzebuję by google maps sczytywało z dwóch pól adresowych city i street. Teraz mam taki kod:

onChange=\"codeAddress(document.getElementById('adres').value); return false;\" />";

który używałem przy sczytywaniu z jednego pola ale nie wiem jak go przerobić by ładnie pobierał z obydwóch pól adresowych, przy dodaniu powyższej linijki kodu do każdego inputboxa i zmianie nazwy na tą z id, mapa najpierw sczytuje miasto a później osobno ulice i w rezultacie pobiera tylko ulice.

Proszę podpowiedzcie jak zmodyfikować kod by nie generował błędów

A teraz kod do pobierania z mysql i wyświetlania punktu na mapce.

if (!empty($nr) AND is_numeric($nr)) {

$result = $db->query("SELECT city FROM ".$dbprefix."biznesads_content WHERE id=".$nr);

$row = $db->fetcharray($result);

$adsplace = $row['city'];

}

print "<body onload='initialize()' onunload='GUnload()'>\n";

print "<script type='text/javascript'>\n";

print " var geocoder;\n";

print " var map;\n";

print " function initialize() {\n";

print " geocoder = new google.maps.Geocoder();\n";

if (!empty($adsplace)) print " var address = '".$adsplace."';\n"; else print " var address = 'Warszawa';\n";

print " var latlng = codeAddress(address);\n";

print " var myOptions = {\n";

print " zoom: 15,\n";

print " center: latlng,\n";

print " mapTypeId: google.maps.MapTypeId.ROADMAP\n";

print " }\n";

print " map = new google.maps.Map(document.getElementById('mapka'), myOptions);\n";

print " }\n";

print " function codeAddress(address) {\n";

print " geocoder.geocode( { 'address': address}, function(results, status) {\n";

print " if (status == google.maps.GeocoderStatus.OK) {\n";

print " map.setCenter(results[0].geometry.location);\n";

print " var marker = new google.maps.Marker({\n";

print " map: map,\n";

print " position: results[0].geometry.location\n";

print " });\n";

print " } else {\n";

print " alert('Wskazana lokalizacja (' + address + ') nie została odnaleziona (' + status + ')');\n";

print " }\n";

print " });\n";

print " }\n";

print "</script>\n";

print "<div id='mapka' style='width: 500px; height: 300px; border: 1px solid black; background: gray; margin: auto;'></div>\n";

print "</body>\n";

Jak dopisać jeszcze zmienna street by załadował cały adres do wyświetlenia z mapki ?

Najprawdopodobniej tutaj $adsplace = $row['city']; muszę jeszcze dopisać zmienną 'street' ale jak to ma wyglądać prawidłowo?

Posiadam taki tam sklep dla niemowląt www.wyprawki-dzieciece.pl

Domy weselne. Znajdź idealne miejsce na imprezę okolicznościową

Odnośnik do komentarza
Udostępnij na innych stronach

Przede wszystkim to co jest w kodzie HTML oddziel od PHP, bo tak jak masz pisano w ubiegłym wieku i jest nieczytelne i niepotrzebnie wywołuje funkcje print() !

<?php
// Tu kod PHP
?>
kod html ...
Znnienne w kodzie html <?php echo $zmienna;?> itd....
<?php
// dalszy kod php
?>
itd..

A co do obsługi same maoy jest dziesiątki przykładów wykorzystania API googlemaps:

https://gmapsapi.com/

https://developers.google.com/maps/documentation/javascript/examples/

https://developers.google.com/maps/?hl=pl

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Widziałem to już wszystko dawno temu

gmapsapi.com/ nie opisuje mojego przypadku (nie chodzi o dodawanie z góry ustalonego markera ani pobranie z 1 pola informacji o markerze) z jednego pola już miałem teraz potrzebuję pobierać z dwóch.

https://developers.g...cript/examples/ jest tak nieczytelne i ciężko-strawne że już porzuciłem nadzieję w sprawie pomocy dla zwykłego kowalskiego

Posiadam taki tam sklep dla niemowląt www.wyprawki-dzieciece.pl

Domy weselne. Znajdź idealne miejsce na imprezę okolicznościową

Odnośnik do komentarza
Udostępnij na innych stronach

Na Twoim miejscu zmodyfikowałbym funkcję codeAddress() dodając na jej początku odczytanie zmiennych z wskazanych pól, dla jQuery ten kod wyglądałby następująco:

var ulica = $('#ulica').val();
var miasto = $('#miasto').val();

A potem dodajesz trzeba z tego zrobić jednego stringa czyli:

var address = miasto + ', ' + ulica;

Ewentualnie możesz te wartości przekazać do funkcji jako parametry, czyli mniej więcej tak jak to robisz teraz:

onChange="codeAddress($('#ulica').val() + ', ' + $('#miasto').val()); return false;"

Odnośnik do komentarza
Udostępnij na innych stronach

Po wpisaniu fragmentu onChange="codeAddress($('#ulica').val() + ', ' + $('#miasto').val()); return false;"

Wywala mi Parse error: syntax error, unexpected T_STRING in /units/firma/index.php on line 3757

Proszę ​ zauważyć że pierwszy fragment kodu ma za zadanie odczytu adresu podczas wpisywania go do pól a druga część kodu ma za zadanie odczytywać z sqla dane podczas przeglądania tego adresu na stronie.

Posiadam taki tam sklep dla niemowląt www.wyprawki-dzieciece.pl

Domy weselne. Znajdź idealne miejsce na imprezę okolicznościową

Odnośnik do komentarza
Udostępnij na innych stronach

Przed każdym cudzysłowem i dolarem musisz postawić \ inaczej będzie błąd w php...

onChange=\"codeAddress(\$('#ulica').val() + ', ' + \$('#miasto').val()); return false;\"

Studio Stawki - najfajniejsze studio fotograficzne z cykolramą w Warszawie - ul. Inflancka 11.

Odnośnik do komentarza
Udostępnij na innych stronach

Wpisałem to tak przy drugim polu inputboxa

print "<input class=\"inputbox\" type=\"text\" name=\"street\" value=\"".filterformread($street, 1)."\" size=\"50\" maxlength=\"64\" id=\"ulica\" var ulica = $('#ulica').val(); var miasto = $('#miasto').val(); onChange=\"codeAddress(\$('#ulica').val() + ', ' + \$('#miasto').val()); return false;\" />";

niestety mapka po przejściu na kolejne pole do wypełnienia nie przeładowała się i nie zmieniła położenia markera.

Może jakiś inny pomysł, może wystarczy przed moją wcześniejszą funkcją tz. onChange=\"codeAddress(document.getElementById('adres').value); return false;\" />";

dopisać coś co by łączyło te dwa id city i street w stringa

Posiadam taki tam sklep dla niemowląt www.wyprawki-dzieciece.pl

Domy weselne. Znajdź idealne miejsce na imprezę okolicznościową

Odnośnik do komentarza
Udostępnij na innych stronach

Cud, miód i orzeszki, działa fantastiko. Dzięki wielkie, faktycznie brakowało mi biblioteki (a myślałem że jest już w komplecie ze skryptem)

Dzięki za prezent pod choinkę :yahoo:

Do nagłówka dopisałem to

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script>window.jQuery || document.write('<script src="js/jquery-1.7.1.min.js">\x3C/script>')</script>

Posiadam taki tam sklep dla niemowląt www.wyprawki-dzieciece.pl

Domy weselne. Znajdź idealne miejsce na imprezę okolicznościową

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności