Wprowadzenie
Moduł formularzy pozwala na dynamiczne dostosowanie odpowiedzi wyświetlanej użytkownikowi po wypełnieniu formularza, w zależności od jego wyborów. Dzięki warunkom możesz personalizować komunikaty, wyjaśnienia i kolejne kroki.
Podstawowa konfiguracja
1. Nadaj nazwę zmiennej w builderze formularza
Każde pole formularza może mieć przypisaną nazwę zmiennej, która będzie przechowywać wybór użytkownika.
Gdzie to ustawić:
- Otwórz edycję formularza
- Kliknij na wybrane pole (np. select, checkbox, radio)
- Po prawej stronie znajdź sekcję “Nazwa zmiennej z wynikiem od Mapuj na”
- Wpisz swoją czytelną nazwę zmiennej - przykładowe nazwy:
typdokumentupreferowana_muzykasposob_platnoscizakres_uslugi
💡 Wskazówka: Nazwa zmiennej powinna opisywać zawartość pola. Możesz użyć dowolnej nazwy - to Ty decydujesz jak ją nazwiesz!
⚠️ Ważne: Unikaj myślników w nazwach zmiennych (np. paragony-faktury). Używaj podkreślników (paragony_faktury) lub camelCase (paragonyFaktury).
2. Użyj zmiennej w odpowiedzi po wypełnieniu
Gdzie to wkleić:
W builderze formularza, przewiń w dół do sekcji:
“Odpowiedź po wypełnieniu formularza (% endif %)”
Tam wklej kod z warunkami, używając nazwy zmiennej, którą wcześniej nadałeś.
Składnia warunków
System używa silnika szablonów podobnego do Jinja2/Liquid z następującą składnią:
Wyświetlanie wartości zmiennej
W przykładzie używamy nazwy zmiennej typdokumentu - u Ciebie może być inna:
<p>Wybrałeś: {{ typdokumentu }}</p>
Podstawowy warunek IF
{% if typdokumentu == "faktury" %}
<p>Będziemy wystawiać faktury VAT.</p>
{% endif %}
Warunek IF-ELSE
{% if typdokumentu == "faktury" %}
<p>Będziemy wystawiać faktury VAT.</p>
{% else %}
<p>Będziemy wystawiać inne dokumenty.</p>
{% endif %}
Warunek IF-ELSIF-ELSE
⚠️ Uwaga: System używa elsif, a nie elif!
{% if typdokumentu == "faktury" %}
<p>Będziemy wystawiać faktury VAT.</p>
{% elsif typdokumentu == "paragony" %}
<p>Będziemy wystawiać paragony.</p>
{% elsif typdokumentu == "wz" %}
<p>Będziemy wystawiać dokumenty WZ.</p>
{% else %}
<p>Skontaktujemy się w sprawie dokumentacji.</p>
{% endif %}
Wiele warunków (OR)
{% if typdokumentu == "faktury, paragony" or typdokumentu == "paragony, faktury" %}
<p>Wybrano oba typy dokumentów.</p>
{% endif %}
Sprawdzanie pustej wartości
{% if typdokumentu == "" or typdokumentu == null %}
<p>Nie wybrano żadnej opcji.</p>
{% else %}
<p>Wybrałeś: {{ typdokumentu }}</p>
{% endif %}
💡 Pamiętaj: We wszystkich przykładach typdokumentu to przykładowa nazwa zmiennej. Użyj nazwy, którą nadałeś swojemu polu!
Przykłady zastosowań
Przykład 1: Prosty select (jedna opcja)
Konfiguracja pola w formularzu:
- Typ pola: Select (lista rozwijana)
- Opcje do wyboru:
faktury,paragony,wz -
Nazwa zmiennej:
typdokumentu(przykładowa nazwa - możesz użyć innej)
Kod w odpowiedzi:
<h2>Dziękujemy za wypełnienie formularza!</h2>
{% if typdokumentu == "faktury" %}
<p><strong>Faktury VAT</strong></p>
<p>Faktura to dokument księgowy zawierający pełne dane transakcji (sprzedawca, nabywca, NIP, kwoty netto/brutto, VAT). Umożliwia odliczenie podatku VAT i jest wymagana w rozliczeniach B2B.</p>
{% elsif typdokumentu == "paragony" %}
<p><strong>Paragony</strong></p>
<p>Paragon to uproszczony dokument sprzedaży bez danych nabywcy. Idealny do rozliczenia kosztów w firmie, gdy nie potrzebujesz odliczenia VAT.</p>
{% elsif typdokumentu == "wz" %}
<p><strong>Dokumenty WZ</strong></p>
<p>WZ (Wydanie Zewnętrzne) to dokument magazynowy potwierdzający wydanie towaru z magazynu.</p>
{% else %}
<p>⚠️ Nie określono typu dokumentu. Skontaktujemy się z Tobą.</p>
{% endif %}
Przykład 2: Checkboxy (wiele opcji)
Konfiguracja pola w formularzu:
- Typ pola: Checkbox (wielokrotny wybór)
- Opcje do wyboru:
faktury,paragony,wuzetki -
Nazwa zmiennej:
dokumenty(przykładowa nazwa - możesz użyć innej)
⚠️ Ważne: Gdy użytkownik wybiera wiele opcji, system łączy je przecinkami w kolejności zaznaczenia: "faktury, paragony" lub "paragony, faktury".
Kod w odpowiedzi:
<h2>Twoje preferencje dokumentacji</h2>
{% if dokumenty == "faktury, paragony" or dokumenty == "paragony, faktury" %}
<p>Wybrałeś: <strong>Faktury i Paragony</strong></p>
<p>Przygotujemy dokumenty w obu formatach zgodnie z Twoimi potrzebami.</p>
{% elsif dokumenty == "faktury, wuzetki" or dokumenty == "wuzetki, faktury" %}
<p>Wybrałeś: <strong>Faktury i WZ</strong></p>
<p>Otrzymasz faktury VAT oraz dokumenty magazynowe WZ.</p>
{% elsif dokumenty == "faktury" %}
<p>Wybrałeś: <strong>Faktury VAT</strong></p>
<p>Faktury będą wystawiane automatycznie i wysyłane na Twój adres email.</p>
{% elsif dokumenty == "paragony" %}
<p>Wybrałeś: <strong>Paragony</strong></p>
<p>Paragony będą dostępne w Twoim panelu klienta do pobrania.</p>
{% elsif dokumenty == "wuzetki" %}
<p>Wybrałeś: <strong>Dokumenty WZ</strong></p>
<p>Dokumenty magazynowe będą dołączone do każdej wysyłki.</p>
{% elsif dokumenty == "" or dokumenty == null %}
<p>⚠️ Nie wybrano żadnej opcji. Skontaktujemy się w sprawie dokumentacji.</p>
{% else %}
<p>Wybrałeś: <strong>{{ dokumenty }}</strong></p>
<p>Skontaktujemy się z Tobą w sprawie wybranej kombinacji dokumentów.</p>
{% endif %}
💡 Uwaga: W tym przykładzie nazwa zmiennej to dokumenty - u Ciebie może być inna!
Przykład 3: Łączenie wielu pól
<h2>Podsumowanie zamówienia</h2>
<p><strong>Typ dokumentu:</strong> {{ typdokumentu }}</p>
<p><strong>Sposób płatności:</strong> {{ platnosc }}</p>
<p><strong>Dostawa:</strong> {{ dostawa }}</p>
{% if typdokumentu == "faktury" and platnosc == "przelew" %}
<p>✅ Faktura zostanie wysłana po zaksięgowaniu przelewu.</p>
{% elsif typdokumentu == "faktury" and platnosc == "karta" %}
<p>✅ Faktura zostanie wygenerowana automatycznie po płatności kartą.</p>
{% endif %}
{% if dostawa == "kurier" %}
<p>📦 Przesyłka zostanie nadana w ciągu 24h.</p>
{% elsif dostawa == "odbiór osobisty" %}
<p>🏪 Zamówienie będzie gotowe do odbioru jutro po 12:00.</p>
{% endif %}
💡 Uwaga: W tym przykładzie używamy trzech nazw zmiennych: typdokumentu, platnosc, dostawa - to przykładowe nazwy!
Debugowanie
Podczas konfiguracji warto sprawdzić, jakie dokładnie wartości zwraca formularz.
Dodaj kod debugujący:
Zamień typdokumentu na swoją nazwę zmiennej:
<p>DEBUG: typdokumentu = "{{ typdokumentu }}"</p>
Lub możesz dodatkowo sprawdzić ID pola (zamień 3446 na właściwe):
<p>DEBUG: typdokumentu = "{{ typdokumentu }}"</p>
<p>DEBUG: field_3446 = "{{ field_3446 }}"</p>
Gdzie:
-
typdokumentu- nazwa zmiennej, którą nadałeś (przykładowa) -
field_3446- ID pola (znajdziesz w konfiguracji lub URL)
Po wypełnieniu formularza zobaczysz dokładne wartości, które możesz użyć w warunkach.
⚠️ Pamiętaj usunąć linie DEBUG przed wdrożeniem na produkcję!
Najczęstsze błędy i rozwiązania
❌ Błąd 1: Używanie elif zamiast elsif
Nieprawidłowo:
{% if typdokumentu == "faktury" %}
<p>Faktury</p>
{% elif typdokumentu == "paragony" %} ❌ NIE ZADZIAŁA
<p>Paragony</p>
{% endif %}
Prawidłowo:
{% if typdokumentu == "faktury" %}
<p>Faktury</p>
{% elsif typdokumentu == "paragony" %} ✅ ZADZIAŁA
<p>Paragony</p>
{% endif %}
❌ Błąd 2: Różne wielkie/małe litery
System rozróżnia wielkie i małe litery!
{% if typdokumentu == "Faktury" %} ❌ nie zadziała dla "faktury"
{% if typdokumentu == "faktury" %} ✅ zadziała
❌ Błąd 3: Brak spacji po przecinku w checkboxach
Gdy użytkownik wybiera faktury i paragony, system może zwrócić:
-
"faktury, paragony"(ze spacją) ✅ -
"faktury,paragony"(bez spacji) - zależy od konfiguracji
Rozwiązanie: Sprawdź przez DEBUG i użyj dokładnie tej samej wartości:
{% if typdokumentu == "faktury, paragony" %} ✅ ze spacją
❌ Błąd 4: Myślniki w nazwach zmiennych
Problem:
Nazwa zmiennej: paragony-faktury
Użycie: {{ paragony-faktury }} ❌ może nie działać
Rozwiązanie:
Nazwa zmiennej: paragony_faktury lub paragonyFaktury
Użycie: {{ paragony_faktury }} ✅ działa
❌ Błąd 5: Nie zamknięto {% endif %}
Nieprawidłowo:
{% if typdokumentu == "faktury" %}
<p>Faktury</p>
❌ BRAK {% endif %}
Prawidłowo:
{% if typdokumentu == "faktury" %}
<p>Faktury</p>
{% endif %} ✅
❌ Błąd 6: Zła kolejność w checkboxach
Użytkownik wybiera kolejno: faktury, paragony
System zwraca: "faktury, paragony"
Twój warunek sprawdza: "paragony, faktury" ❌
Rozwiązanie: Użyj or:
{% if typdokumentu == "faktury, paragony" or typdokumentu == "paragony, faktury" %}
Operatory dostępne w warunkach
== |
równe | {% if zmienna == "wartość" %} |
!= |
różne od | {% if zmienna != "wartość" %} |
or |
lub (jeden z warunków) | {% if a == "x" or a == "y" %} |
and |
i (oba warunki) | {% if a == "x" and b == "y" %} |
Dodatkowe wskazówki
Formatowanie odpowiedzi
Możesz używać HTML do formatowania:
{% if typdokumentu == "faktury" %}
<div style="background: #f0f8ff; padding: 15px; border-radius: 5px;">
<h3>✅ Faktury VAT</h3>
<p>Twoje faktury będą wystawiane automatycznie.</p>
<ul>
<li>Format: PDF</li>
<li>Wysyłka: email</li>
<li>Termin: do 3 dni roboczych</li>
</ul>
</div>
{% endif %}
Łączenie z innymi zmiennymi formularza
<h2>Cześć {{ imie }}!</h2>
<p>Dziękujemy za wypełnienie formularza.</p>
{% if typdokumentu == "faktury" %}
<p>Faktury VAT będą wysyłane na adres: <strong>{{ email }}</strong></p>
{% endif %}
{% if newsletter == "tak" %}
<p>✅ Zapisaliśmy Cię na newsletter.</p>
{% endif %}
💡 Pamiętaj: W przykładach używamy nazw: imie, email, typdokumentu, newsletter - to przykładowe nazwy zmiennych!
Checklist przed wdrożeniem
- Nadano nazwę zmiennej w builderze (bez myślników)
- Przetestowano formularz i sprawdzono wartości przez DEBUG
- Wszystkie wartości w warunkach są identyczne z tymi z formularza (wielkie/małe litery, spacje)
-
Każdy
{% if %}ma odpowiadający{% endif %} -
Użyto
{% elsif %}a nie{% elif %} -
Dla checkboxów uwzględniono różne kolejności (
or) - Usunięto kod DEBUG przed wdrożeniem
-
Zamieniono przykładowe nazwy zmiennych (
typdokumentu,dokumentyitd.) na własne
Potrzebujesz pomocy?
Jeśli masz problem z konfiguracją warunków:
- Dodaj kod DEBUG i wyślij nam screenshota z wartościami
- Sprawdź tę dokumentację pod kątem najczęstszych błędów
- Skontaktuj się z działem wsparcia technicznego
Ostatnia aktualizacja: 2025-10-22