![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 19.09.2003 Skąd: Ostrów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam stronę w php na smarty. Na tej stronie ma pojawiać się mapka Google. Skrypt z mapką przekazuję do szablonu:
W tych liniach: var point = new GLatLng('.$row['mapa'].'); map.setCenter(new GLatLng('.$row['mapa'].'), 15); $row['mapa'] są to współrzędne mapy pobrane z bazy danych. Skrypt wstawiłem w nagłówku szablonu w HEAD:
Wszystko idealnie działało i mapa wyświetlała się prawidłowo. Wstawiłem w nagłówku kolejny skrypt do ukrywania divów: Od tego momentu skrypt z mapą nie działa prawidłowo (nie pokazuje właściwej pozycji na mapie), natomiast drugi skrypt działa prawidłowo. Gdzie tkwi błąd? Próbowałem już na wszystkie sposoby np. zamieniałem skrypty miejscami, zmieniałem nazwy zmiennych w drugim skrypcie i też nic. Ten post edytował SpiderPL 31.01.2009, 22:03:48 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 266 Pomógł: 20 Dołączył: 15.11.2006 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj pierwszy skrypt wstawić "natywnie" w js. Tylko zmienne użyte przekaż za pomocą assign (w sumie chyba tylko $row['mapa'] będziesz musiał przekazać).
-------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 19.09.2003 Skąd: Ostrów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Myślałem już, żeby tak zrobić. Potrafię przekazać zmienną z php do JavaScript, jednak zupełnie nie wiem jak przekazać ją z php do szablonu smarty. Jeśli przypisuję ją zwyczajnie poprzez $smarty ->assign('zmienna', $costam); to w obrębie skryptu JavaScript wstawionego w szablonie ta zmienna po prostu nie działa. Z tego właśnie powodu osadziłem skrypt w php, a następnie przekazałem do szablonu.
Obawiam się jednak, że to chyba nie jest powodem, bo mapa po usunięciu tego drugiego skryptu działa poprawnie. Po jego wstawieniu też częściowo działa, gdyż marker ustawiany jest na właściwej pozycji, tylko mapa nie wiadomo dlaczego przesunięta jest nieco w prawo o jakieś 150 pikseli i marker ginie poza obrębem okienka mapy. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 300 Pomógł: 32 Dołączył: 31.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przecie wszystko jest jasno opisane na stronach manuala Smarty opisujących {literal} -Smarty nie przetwarza w ogóle tego bloku,więc takżę nie podstawi zmiennych - musisz zrobić kilka takich bloków - "{/literal}{$zmienna}{literal}" i wszystko będzie działać. Alternatywnie dać wszystkie funkcje z blokach literal a tylko ich wywołania poza - przy braku "{}" nie będzie to się gryzło ze smarty.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 19.09.2003 Skąd: Ostrów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Już tak robiłem. Wstawiałem w miejscu zmiennej $row['mapa'] wartość przekazaną do szablonu z php i to dokładnie w taki sposób jak opisałeś. {/literal}{$zmienna}{literal} itd.
To nie działało wcale, dlatego zdecydowałem się osadzić skrypt gdzieś indziej. Teraz działa, ale tylko częściowo, gdyż tak jak wcześniej napisałem - marker ustawiony jest na właściwej pozycji, natomiast mapa nie zostaje wycentrowana tam gdzie trzeba, tylko jest przesunięta i to dość sporo. 300 stronnicowy manual w postaci książki leży tu obok mnie i pomimo, że są tam opisane wszystkie zaawansowane właściwości smarty, to jednak na temat JavaScript we współpracy ze smarty informacje są lakoniczne. Przeryłem go od deski do deski i niczego tam nie znalazłem, dlatego pytam tutaj. Próbowałem przed chwilą umieścić tą mapkę gdzieś indziej, ale z tym samym nagłówkiem (czyli przy ładowaniu strony wywoływane są obydwa skrypty) i na tej innej podstronie mapka wyświetla się prawidłowo, więc chyba skrypty nie gryzą się ze sobą. Kompletnie nie wiem już o co chodzi... Czyżby to miało związek z jakimś atrybutem w linkach do ukrywania i pokazywania divów? ![]() Link wygląda tak: Ten post edytował SpiderPL 1.02.2009, 23:28:59 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:18 |