![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wrzuciłem na lokalny dysk robiący za serwer (WebServ) biblioteki Smarty. Idąc według krótkiego przewodnika ze strony Smarty, zmieniłem plik php.ini pod Windows. Utworzyłem odpowiednie katalogi. Smarty działa w prostym pliku index.php i index.tpl. Jest tam przykładowa zmienna {$name}, przeglądarka wyświetla "Hello Ned!", gdzie kod jest "Hello {$name}". Czyli działa.
Jednak borykam się z uruchomieniem obsługi Smarty w innych plikach. Dostałem od kogoś pliki używające zmiennych Smarty i chciałbym je uruchomić. Mam powiedzmy plik aaa.tpl i aaa.php. Uruchamiam ten aaa.tpl jako htm i wynik w przeglądarce zawiera tylko odwołania zmiennych Smarty, a nie wynik. Jak to zrobić? Czy ktoś mógłby mnie naprowadzić? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 25.02.2006 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Źródło: http://www.smarty.net/manual/en/installing.smarty.basic.php
Plik o nazwie index2.tpl w katalogu $smarty->template_dir
Jak łatwo zauważyć Smarty jest obiektem, gdzie definiujemy podstawowe atrybuty ($smarty->zmienna, np. $smarty->templete_dir), a następnie przypisujemy "zmiennym w szablonach" wartości ($smarty->assign('nazwa_zmiennej_w_szablonie', wartosc)). Później wyrzucamy wynik generowania szablonu ($smarty->display('index2.tpl')) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuję za ten opis. Chodzi. Muszę teraz tylko na spokojnie wpleść to w większe pliki.
Jeszcze takie pytanie: jak poprawnie użyć zmiennej Smarty w następującym przykładzie. Otóż mam formularz <form> w pliku .tpl. Wewnątrz formularza jest użyty Smarty, pętla. Wygląda to mniej więcej tak: Cytat <form method="post" action="plik.php?action=xxxx"> .... {section name=xxxx loop=$xid} <td><input type="checkbox" name="{$xid[xxxx]}" /></td> <td><input type="text" name="{$amount[xxxx]}" /></td> {/section} .... $xid to ID rekordu w tabeli MySQL, skąd dane są wcześniej ściągnięte i obrobione. Natomiast do zmiennej $amount chciałbym "dynamicznie" przesłać dane formularzem. Ponieważ jest to w pętli dla wielu rekordów, sądzę iż to powinna być tabela. Nie wiem, gdzie taką zmienną zadeklarować oraz czy tak można. Następnie chciałbym te dane używać w pliku .php. W jaki sposób potem mogę odwołać się w pliku .php do zmiennej $amount i zadać odpowiednie komendy do MySQL, aby zaktualizować odpowiednie ilości w bazie danych? W MySQL już sobie poradzę, jednak jak "przerzucić" dane z formularza do pliku .php aby je tam używać? Ten post edytował lahhott 18.07.2009, 00:42:10 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat W MySQL już sobie poradzę, jednak jak "przerzucić" dane z formularza do pliku .php aby je tam używać? Ale o co chodzi? Wszystko masz w tablicy $_POST. Przetwarzasz w pętli każdy element i wysyłasz. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie jestem pewien, jak się odwoływać do zmiennych poprzez $_POST. Czy coś poniższego:
plik.tpl Cytat <form method="post" action="plik.php?action=xxxx"> .... {section name=xxxx loop=$xid} <td><input type="checkbox" name="{$xid[xxxx]}" /></td> <td><input type="text" name="{$amount[xxxx]}" /></td> {/section} .... <input type="submit" name="wyslij" value="Wyślij"> plik.php Cytat if (isset($_GET['action']) && $_GET['action'] == "xxxx") Czy też w plik.php również muszę wstawić pętlę?
{ $zmienna=$_POST[$amount] } Ten post edytował lahhott 18.07.2009, 12:53:21 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dynamicznie wypełniasz name, więc możesz nie wiedzieć czego się spodziewać, poniżej masz kod, którym odczytasz klucz i wartość każdego elementu tablicy POST.
Jeśli nie wiesz jak z tego skorzystać to może powinieneś się pouczyć podstaw.. Ps. Autor odpowiada po kilku promilach - może się mylić. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.09.2025 - 19:21 |