Autor | Zpráva | ||
---|---|---|---|
Vendy Profil |
#1 · Zasláno: 29. 9. 2015, 10:08:33
Ahoj a dobrý den,
můj dotaz bude vypadat hodně hloupě, ale... Na webu užívám kontaktní formulář formou pluginu Contact Form 7, který dává možnosti text area, drop-down menu, checkboxes, radio atd. Zároveň vytváří reakce na e-mailu, takže jsem nikdy nemusela nastavovat nic jiného, než jen doprovodné komentáře (formou html), což pro mne, lamu, je naprosto ideální verzí. Teď jsem se ale dostala do situace, kdy potřebuji vytvořit formulář, který bude zobrazovat něco, až po zaškrtnutí něčeho, tedy lehce anketní styl s rozcestníky. Příklad: Chcete se účastnit A) aktivně B) pasivně a každá z možností až po zaškrtnutí pak "vyplivne" další pokračování - A) aktivně -> umím to a ono; B) pasivně -> divák... Ačkoliv do pluginu mohu přes html vstupovat, lze to jen částečně a vůbec netuším, jak bych vytvářela toto nastavení. Nejde tedy o plugin, ale o nastavení jako takové. Než se odhodlám nebrat léky, abych ušetřila peníze a mohla dát toto nastavení jako zakázku, první bych se chtěla zeptat vás, jak moc složité to je (v tahácích html se mi nepodařilo najít to, co bych potřebovala), zda bych formulář třeba nedokázala vytvořit i sama. Za odpověď předem děkuji, Vendulka |
||
Keeehi Profil |
#2 · Zasláno: 29. 9. 2015, 13:12:03
Zběžně jsem prolétl dokumentaci ale podle toho co jsem našel, respektive nenašel bych řekl, že tebou požadovanou funkcionalitu nepodporuje.
Jednoduché i když ne příliš elegantní řešení by bylo na stránku vložit iframe a do něj google forms, které tebou hledanou funkcionalitu umí. |
||
smitka Profil |
#3 · Zasláno: 29. 9. 2015, 16:59:00
CF7 toto přímo neumí, není však extra problém dodělat tuto logiku pomocí javascriptu, kdy se budou další políčka skrývat/odkrývat pomocí CSS - je to ale docela pracné...
wordpress.org/support/topic/this-is-how-to-have-simulated-conditional-fields-in-cf7-with-jquery Další řešení je použít jiný typ kontaktního formuláře, který toto umí: Za 39$ Gravity Forms: www.gravityforms.com Nebo za stejnou cenu: ninjaforms.com (s tímto pluginem nemám tolik zkušeností, rozhodval jsem se mezi ním a gravity) Zdarma je také vcelku dobrý plugin wordpress.org/plugins/caldera-forms |
||
Marschmallow Profil |
Vendy:
Jak už píše smitka, lze použít skrývání a odkrývání textu pomocí JS. Tady máš ukázku rovnou na jakpsatweb: Skrývání a odkrývání textu na přání uživatele. A nepřijde mi, že by to bylo nějak obvlášť pracné. Každopádně netuším, jak by se to dalo zakomponovat do toho Tvého formuláře. Jedině si vytvořit vlastní, anebo použít ty Google Forms. |
||
Vendy Profil |
#5 · Zasláno: 30. 9. 2015, 07:24:00
Keeehi:
„tebou požadovanou funkcionalitu nepodporuje“ Ano, nepodporuje. S google forms zatím nemám zkušenosti, určitě se na ně podívám. smitka: „Další řešení je použít jiný typ kontaktního formuláře, který toto umí“ Děkuji za tipy. Ten plugin gravity vypadá skvěle, na calderu se ještě podívám - logicky financovat plugin kvůli jednomu formuláři se mi ani trochu nechce (to je tak, když člověk spolupracuje s lidmi, kteří si jen umí zapnout počítač a hned mě mají za "ajťáka", protože jsem se z nouze nadrtila nějaké základy). Dozvěděla jsem se od Tebe víc, než na oficiální podpoře WP. Marschmallow: „Jak už píše smitka, lze použít skrývání a odkrývání textu pomocí JS. Tady máš ukázku rovnou na jakpsatweb“ Když jsem prolézala JPW, na toto jsem nenarazila, díky za odkaz. |
||
smitka Profil |
#6 · Zasláno: 30. 9. 2015, 11:01:54
Marschmallow:
„jak by se to dalo zakomponovat“ To je právě to pracné :-) Je potřeba vygenerovat kompletní formulář a pak k němu napsat skript, který: a) skryje všechna políčka, která se mají objevovat v závislostech na jiných a nastavit jim nějaké výchozí hodnoty (pokud jsou označena jako povinná) b) napsat si pro všechna skrývaná políčka funkce pro jejich skrytí a odkrytí a případné přenastavování jejich hodnoty, pokud jsou povinná (např. při skrytí hodnotu "nevyplněno", při odkrytí hodnotu "", aby ji člověk musel vypsat sám) c) na políčka, která mají rozhodovat se zavěsit událost on change např. $('#otazka1_moznost1 input[type=checkbox]').change(function() { if($(this).is(":checked")) { zobrazA();zobrazB();skyjC(); } else { zobrazC();skryjA();skryjB(); } }); |
||
Vendy Profil |
#7 · Zasláno: 1. 10. 2015, 10:06:11
smitka:
„Je potřeba vygenerovat kompletní formulář a pak k němu napsat skript“ Krásná ukázka :) A pro nás, pro blbé, si rozložím větu na dvě části: Vygenerovat kompletní formulář - tzn. vytvořit formulář, který obsahuje všechny části, včetně těch, které budu ukrývat pokud nebude odkliknuto. Chápu to tak správně? Napsat k němu skript - tzn. zapsat všechny ty proměnné přímo do formuláře. Chápu to tak správně? Pokud ano, pak bych asi měla opustit automatické vygenerování některých částí, které plugin nabízí, a zapisovat je přes html. Rozumím tomu základnímu takto dobře? |
||
smitka Profil |
#8 · Zasláno: 1. 10. 2015, 21:50:48
Vendy:
1) Ano, přesně tak - vytvořit formulář kompletní se všemi částmi. 2) Vygenerování částí je v pořádku, jen je potřeba je ve výsledném kódu "obalit" třeba <div> s nějakými ID, aby na ně pak bylo možné odkazovat v javascriptu a za formulář dát ten ovládací skript (psáno velmi orientačně, bez hezkého formátování a bez řešení povinných políček): <p>Otázka 1 (vyžadováno)<br /> [radio* radio-381 "A" "B"] </p> <div id="odpovediB"> <p>Prvni odpověď pro B<br /> [text odpovedB1] </p> <p>Druha odpověď pro B<br /> [text odpovedB2] </p> </div> <p>Otázka 2 (vyžadováno)<br /> [text* odpoved2] </p> <script> jQuery("#odpovediB").hide(); jQuery("[name=radio-381]").change(function(){ if(jQuery(this).val()==="B") jQuery("#odpovediB").show(); else jQuery("#odpovediB").hide(); }); </script> |
||
Vendy Profil |
#9 · Zasláno: 2. 10. 2015, 08:53:46
smitka:
Krásně vysvětleno, děkuji. A už se úplně vidím, jak to dělám. Jsem se zase nechala uvrtat do něčeho, co naprosto neumím. Když jsem se naposledy snažila "obalit kód", abych jej mohla vycentrovat, až tady jsem se dozvěděla, že to dělám sice dobře, ale šablona mě nepustí, dokud to nepřepíši v style.css. Pokusit se sice pokusím, ale nevidím to zrovna v růžových barvách, asi stejně formulář skončí jako zakázka. Ale moc děkuji, alespoň vím, že to jde stavět i na logice pluginu, který znám zpaměti a nevadí mi, že na něj skoro nevidím (ani hlasové ovládání pc totiž neumí přelouskat kódy html a css, o asistenci druhého člověka, který mi nahrazuje oči, ani nemluvě). |
||
Časová prodleva: 5 dní
|
|||
Vendy Profil |
#10 · Zasláno: 6. 10. 2015, 23:50:06
smitka:
Tak jsem se snažila a ani pomocí taháků, ani pomocí Tvých ukázek, jsem se nehnula z místa. Tudíž jsem zadala zakázku zde na fóru (Hledám člověka znalého javascriptu - pro dotvoření formuláře). Prostě div, script aspol. jsou silnější než já :D Ale děkuji za rady. |
||
Časová prodleva: 8 let
|
0