Odeslání formuláře – projítí všech checkboxů ve formuláři

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Lebow
Člen | 9
+
0
-

Ahojte,
vytvořil jsem si jednoduchý formulář, kde jsem si pomocí cyklu vygeneroval asi 30 checkboxů s různými hodnotami. Nyní jsem v metodě pro zpracování, kde bych chtěl všechny checkboxy nějak projít, nebo rovnou dostat pole zaškrtnutých hodnot, lze to nějak?

V dokumentaci jsem nic nenašel :(

Předem díky

David Matějka
Moderator | 6445
+
+3
-

nebude ti lepe vyhovovat checkboxlist?

Darkling
Člen | 35
+
+2
-

Ahoj,

pokud jsi checkboxy vytvářel v cyklu koukni sem https://doc.nette.org/cs/forms#…. Jinak lze použít $form->addCheckboxList(...); → https://doc.nette.org/cs/forms#…

Editoval Darkling (9. 7. 2016 0:23)

Lebow
Člen | 9
+
0
-

s tím checkboxlistem je to dobrý nápad, to mně nenapadlo :)

Ještě dotaz, existuje nějaký způsob v Nette, jak do db vložit pole? řekněme, že ty checkboxlisty jsou kategorie, takže mám pole, kde hodnoty z checkboxlistu jsou id jentolivých kategorií a druhá hodnota v poli (vždy stejná) je id nějakého článku. nyní bych to potřeboval uložit do nějaké mapovací tabulky (takže např. 1 | 2, 1 | 8, 1 | 9) – byly vybrány kategorie s id 2,8,9 pro článek id 1. Mohu to v nette nějak provést napřímo, nebo opět nějak cyklem? Děkuji

Lukes
Silver Partner | 68
+
+1
-

Lebow napsal(a):

Ještě dotaz, existuje nějaký způsob v Nette, jak do db vložit pole? řekněme, že ty checkboxlisty jsou kategorie, takže mám pole, kde hodnoty z checkboxlistu jsou id jentolivých kategorií a druhá hodnota v poli (vždy stejná) je id nějakého článku. nyní bych to potřeboval uložit do nějaké mapovací tabulky (takže např. 1 | 2, 1 | 8, 1 | 9) – byly vybrány kategorie s id 2,8,9 pro článek id 1. Mohu to v nette nějak provést napřímo, nebo opět nějak cyklem? Děkuji

No správně by si měl použít vazební tabulku, která propojuje pomocí M:N relace kategorie a články, protože takle porušuješ 1NF návrhu databáze (Atomocita atributů). Ale pokud to chceš „prasit“, tak vždycky jde použít implode, json_encode, serialize, base64_encode a vložit to do nějakého varcharu a následně při výběru to parsovat.

Případně pokud používáš MariaDB, tak tam je datový typ SET, který dokáže zaznamenat výčet hodnot, což zde stejně není vhodné.

Editoval Lukes (9. 7. 2016 23:55)