Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

Zaawansowane formularze

formularze

  • Zaloguj się, aby dodać odpowiedź
11 odpowiedzi w tym temacie

#1
rr97

rr97

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 61 postów

Witam,

 

zastanawiam się czy da się w contao wykonań bardziej skomplikowane działania z formularzami taki jak:

 

1. Mozna podac stronę docelową formularza. Ale czy jest sposób na dodanie do adresu dodatkowych parametrów tak aby w jakis sposób sterowac przetwarzanie formularza. Wiem, że można wykorzystać pola ukryte ale....

 

Chodzi o to aby móc po wysłaniu formularza wywołać stronę, na ktorej on się zajduje ale w jego miejscu wywietlić podziękowanie za jego wyslanie.

 

2. Ewentualnie można wykorzystać javascript aby odbyło się to bez przeładowania strony.

Ale jak dodać do formularza wywołanie funkcji przy wysyłaniu za pomocą onsubmit? 

 

W jaki sposób wogole do contao można dodac najłatwiej swoj skrypt javascript bez zaszywania go na stałe w pliku szablonu strony?

 

To moje początki z contao, wydaje mi się, że to dość skomplikowany system.

 

 


  • 0

#2
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

Jeżeli chodzi o formularz, to pozostaje zrobić kopię podstrony i zastąpić na niej formularz wiadomością. Gdzieś było rozszerzenie, które dodawało AJAX do formularzy, ale nie wiem czy działa z najnowszą wersją Contao.

 

Ja zawsze dodaję skrypty za pomocą plików szablonów z przedrostkiem j_ bądź moo_. Na moim blogu opisane jest co, jak i dlaczego (po angielsku) http://blog.qzminski...ur-website.html


  • 0

Codefog - Contao web development


#3
rr97

rr97

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 61 postów

Ok, czyli nie można dodać parametrów?

 

1. A jak można dodać do strony fragment z własnym kodem php aby np. zrobić własną walidację formularza, lub na podstawie podanych danych wykonać określona akcję?

 

2. Jak zrobić przekierowanie w takim przypadku, np. za pomocą header("location...... Da się? Tak aby wyświetlić podziękowanie i przekierować na inną podstronę po np. 10 sekundach


  • 0

#4
milbau

milbau

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 170 postów

Kamilowi chodziło pewnie o ten moduł: https://contao.org/e...0010009.en.html

Wdrażałem klika razy na Contao 3.x i działało, tylko ostatnio nie działała mi jakaś najnowsza wersja na wtedy aktualnym Contao - jednak starsza wersja tego modułu działała ok z tą wersją Contao, ale już nie pamiętam jaka to była wersja, musisz sprawdzić jak to wygląda aktualnie.


  • 0

#5
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

1. Obawiam się, że ciężko byłoby zaimplementować własną walidację do formularza generowanego z Contao. Są HOOKi typu "processFormData", ale nie wiem czy spełnią Twoje oczekiwania.

 

2. Wtedy najlepiej użyć JS :-)


  • 0

Codefog - Contao web development


#6
rr97

rr97

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 61 postów

Może w skrócie opiszę o co mniej więcej mi chodzi:

 

użytkownik ma wprowadzać poprzez formularz pewne dane, np. osobowe, na podstawie, których następnie będzie wygenerowany pdf, który będą mogli sobie pobrać lub wydrukować. 

 

Powiedzmy, że po wypełnieniu formularza mogą być przekierowani na kolejną podstronę. Ale czy możliwe jest w prosty sposób dodanie do niej skryptu php (nie js), czy też trzeba tworzyć jakiś moduł aby ten skrypt wykonał. Czy jest to skomplikowane?


  • 0

#7
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

Możesz dodać kod PHP do tej strony za pomocą mojego modułu. Wystarczy, że z modułu Szablony utworzysz nowy plik z przedrostkiem custom_, np. custom_skrypt. Następnie utworzysz moduł frontend (typ "Własny moduł"), wybierzesz swój plik i osadzisz moduł na wybranej podstronie. W twoim wypadku to ta, na którą zostanie przekierowany użytkownik po wysłaniu formularza.

 

https://contao.org/e...0010029.en.html


  • 0

Codefog - Contao web development


#8
rr97

rr97

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 61 postów

O coś takiego własnie mi chodziło, dzięki.  


  • 0

#9
rr97

rr97

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 61 postów

Potrzebuję jedynie dobrać się jeszcze do bazy danych.

Jak to zrobić w nowo utworzonym pliku custom_script, lub jak odczytać w nim pobrane dane w innym pliku.

 

W mod_custom jest to łatwe, wystarczy w CustomModule dodać np. $objLink = $this->Database->execute("SELECT * FROM tl_content");  $this->Template->zmienna = $this->zmienna; a następnie w mod_custom: echo $this->zmienna.

 

Ale w mod_custom custom_script jest wywoływany za pomocą $this->output.

 

Mógłbym wszystko zrobić w mod_custom ale rozwiązanie z wyborem pliku_modułu podczas dodawania modułu bardzo mi się podoba i szkoda byłby z tej możliwości rezygnować.

 

Mam nadzieję, że piszę z sensem bo późna już godzina :)


  • 0

#10
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

Do bazy danych możesz równieź dobrać się w ten sposób:

<?php $objLink = Database::getInstance()->execute("SELECT * FROM tl_content"); ?>

  • 0

Codefog - Contao web development


#11
rr97

rr97

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 61 postów

Jeszcze jedno pytanie :)

 

Gdy w custom_module w pliku szablonu utworzę formularz mogę bez problemu odebrać i przetwarzać dane.

 

Ale jak odebrać w custom_module dane z formularza przesyłanego metodą POST, a utworzonego z poziomu panelu administracyjnego contao? Czym różni się taki formularz, że dane z tablicy POST są po drodze gdzieś wycinane?


  • 0

#12
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

Zdaje się, że takie dane są przechowywane w $_SESSION['FORM_DATA'].


  • 0

Codefog - Contao web development






Również z jednym lub większą ilością słów kluczowych: formularze

Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych użytkowników