![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich
Przerabiam stronkę na której oddaje się głos na zdjęcie klikając jego miniaturkę. Wszystko działa w szablonach Smarty. Dotychczas to chodziło tak że po kliknięciu odsyłacza (zdjęcie) jet przekierowanie z pliku zdjecia.tpl do pliku function.load_zdjecia.php. Tam na podstawie numeru zdjęcia jest dalsza akcja, zapis do bazy jakie zdjęcie otrzymało głos. Dołożyłem w pliku zdjecia.tpl formularz, żeby określić ile punktów przyznajemy na dany obrazek, ale nie chcę dodawać buttona, chcę żeby zostało rozwiązanie z kliknięciem na zdjęcie. CODE <input type="text" name="Punkty"> <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}"> <img class="wyslij" src="images/glosuj.gif" border="0" /> </a> </form> Trzeba przekazać zmienną o nazwie punkty z pliku zdjecia.tpl do pliku function.load_zdjecia.php. Pomyślałem że można by to zrobić wykorzystując onClick, tylko JavaScript jakoś słabawo u mnie i mi to nie wychodzi. W pliku function.load_zdjecia.php zdefiniowałem zmienną: public $mPunkty; i do niej chcę przekazać wartość z formularza. Dalej poprzerabiałem aż do bazy i jak ustawię ręcznie np: public $mPunkty=4; to po kliknięciu w odsyłacz wszystko działa jak trzeba. Pozostał mi problem jak przekazać zmienną z formularza, nie używając przycisku formularza tylko przez klikniecie na obrazek. Acha, próbowałem wstawić buuton używając obrazka jako tło, ale to nie działa. Pytanie do kogoś kto zna Smarty i JavaScript, jak to zrobić? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 3 Dołączył: 6.10.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Najprościej, bez użycia js możesz wstawić obrazek jako <input type="image" />
Jeżeli jednak js to: http://www.javascript-coder.com/javascript...rm-submit.phtml Pierwszy wynik z googla. Jak chcesz jeszcze jakieś parametry przez formularz przekazać, np id zdjęcia, to wystarczy pole hidden w formularzu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za radę, ale to nie rozwiązuje problemu. Nie chcę zrezygnować z tego triku:
CODE <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}"> ... </a> bo dzięki przekazaniu w odpowiednie miejsce akcji ze zmienną $foto_list->mFoto[k] mam poskładane zapytanie w pasku przeglądarki, mniej więcej takie CODE .../index.php?GoTyp=2&FotoID=23&Punkty= Myślę że rozwiązania problemu trzeba szukać w tym kierunku CODE <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}" onclick="..."> żeby kliknięciem w obrazek zainicjować $_GET['Punkty'], wtedy dostanę mniej więcej coś takiego w pasku przeglądarki:... </a> CODE .../index.php?GoTyp=2&FotoID=23&Punkty=4 nie wiem czy dobrze kombinuję, ale jeżeli onclick="..." by to załatwił byłoby chyba najprościej. Proszę o jakieś sugestie, pozdro.Działa na dwa razy, to znaczy jak wyślę formularz mam potrzebną zmienną $_POST ['txtIle'] (czyli pierwsze kliknięcie - w przycisk wyślij). Drugie kliknięcie - w odsyłacz <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}" > (odsyłaczem jest obrazek, ale właściwie może być jakikolwiek element, ważna jest funkcjonalność). To drugie kliknięcie załatwia sprawę, to znaczy uruchamia dalsze działania już ze zmienną zawierającą wpisaną ilość punktów - czyli zmienną $_POST ['txtIle'], nie wchodzę w dalsze szczegóły bo tam mi wszystko działa. Tu jest kod formularza i odsyłacza. CODE <form name="punktacja" action="index.php" method="POST"> <input type="text" name="txtIle" size="2"> <input type="submit" value="wyślij" > </form> <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}" onclick="document.punktacja.submit()"> <img class="wyslij" src="images/glosuj.gif" /> </a> Ten onclick dołożyłem żeby pokazać jak kombinowałem żeby połączyć to w jedno, ale nic z tego, nie działa. Pytanie moje jest takie: czy da się te dwie akcje połączyć w jedno, myślałem też jakby do tego wykorzystać location. Nie wiem jak to leci bo JS dla ciemna magia, ale może się da z formularza zrobić przekierowanie do {$foto_list->mFoto[k].onclick_add|escape:'html'} wtedy odsyłacz <a href ... byłby niepotrzebny. Smarty komplikuje sprawę. Na podstawie Twoich wskazówek Trawka poszukałem jeszcze trochę i wyczaiłem skrypt który uruchamia formularz po kliknięciu w odsyłacz. Na testach mi to działa, ale jak wstawiam taki sam mechanizm do Smarty przestaje działać. (Skrypt JS osadziłem w Smarty prawidłowo, za pomocą {literal}, nie wywala żadnego błędu). Może ktoś miał kiedyś taki problem i coś może doradzić? Działa na dwa razy, to znaczy jak wyślę formularz mam potrzebną zmienną $_POST ['txtIle'] (czyli pierwsze kliknięcie - w przycisk wyślij). Drugie kliknięcie - w odsyłacz <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}" > (odsyłaczem jest obrazek, ale właściwie może być jakikolwiek element, ważna jest funkcjonalność). To drugie kliknięcie załatwia sprawę, to znaczy uruchamia dalsze działania już ze zmienną zawierającą wpisaną ilość punktów - czyli zmienną $_POST ['txtIle'], nie wchodzę w dalsze szczegóły bo tam mi wszystko działa. Tu jest kod formularza i odsyłacza. CODE <input type="text" name="txtIle" size="2"> <input type="submit" value="wyślij" > </form> <a href="{$foto_list->mFoto[k].onclick_add|escape:'html'}" onclick="document.punktacja.submit()"> <img class="wyslij" src="images/glosuj.gif" /> </a> Ten onclick dołożyłem żeby pokazać jak kombinowałem żeby połączyć to w jedno, ale nic z tego, nie działa. Pytanie moje jest takie: czy da się te dwie akcje połączyć w jedno, myślałem też jakby do tego wykorzystać location. Nie wiem jak to leci bo JS dla ciemna magia, ale może się da z formularza zrobić przekierowanie do {$foto_list->mFoto[k].onclick_add|escape:'html'} wtedy odsyłacz <a href ... byłby niepotrzebny. Smarty komplikuje sprawę. Na podstawie Twoich wskazówek Trawka poszukałem jeszcze trochę i wyczaiłem skrypt który uruchamia formularz po kliknięciu w odsyłacz. Na testach mi to działa, ale jak wstawiam taki sam mechanizm do Smarty przestaje działać. (Skrypt JS osadziłem w Smarty prawidłowo, za pomocą {literal}, nie wywala żadnego błędu). Może ktoś miał kiedyś taki problem i coś może doradzić? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 09:18 |