Dynamicky formulář ala Replikator

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

Zdravíčko…jak vyřešit problém dynamicky generovaného formuláře stylem že v něm mám dejme tomu jeden select box co má v sobě 1-n položek a každá z těchto položek reprezentuje jeden kontejner.

Fungovat by to mělo tak že provedu select jedné položky a do formuláře se mi přidá nový kontejner co bude mít X políček k editaci. Ten výběr ze selectu můžu provést libovolně krát, takže těch kontejnerů tam můžu mít 1-n.

Napadlo mě kuchat kdyby\replicator a místo toho aby generoval jednotlivé form komponenty v kontejneru by generoval rovnou kontejnery na základě selectu či nějakého buttonu.

Co nette znalejší na to?

akadlec
Člen | 1326
+
0
-

Nikdo nic? žáden tip?

akadlec
Člen | 1326
+
0
-

Mno takže jsem to pořešil vlastním kontejnerem inspirován kdyby/replicatorem.

Funguje to tak že se vytvoří kontejner a do něj registrují jednotlivé bloky. Kontejner pak vytvoří selectbox pro výběr jaký blok se má přidat a klasiky jako u repilikatoru kliknutím na button se blok přidá.

chemix
Nette Core | 1310
+
0
-

@akadlec a jaky ze je ten hlavni rozdil oproti kdyby/replicator?

akadlec
Člen | 1326
+
+2
-

@chemix dynamicky přidáváš libovolné typy bloků. např.:

  1. blok obsahuje 1 textový input a 1 textové pole
  2. blok obsahuje 1 textový input a 2 selctboxy

Dopředu nevíš kolik čeho chceš použít. A pak si naklikáš třeba 3× bloky 1 a 2× bloky 2.

Já jsem to potřeboval abych mohl dynamicky vytvořit obsah stránky který je tvořen z těch bloků, jako mohl jsem to rozdělit na X malých formulářů ale to by nebylo ono, resp. byly by tam zase jiné komplikace. Takto si vytvořím blok co mě bude tvořit textovou část, pak si udělám blok co mě bude dělat třeba formulář, za něj zase zařadím blok s textem a na konec dám blok co mě udělá galerii.

Mám to součástí CMSka a chtěl jsem ještě mít taky k dispozici funkcionalitu, že jednotlivé moduly si tyto bloky zaregistrují samy, takže třeba modul eshopu si do modulu stránek kde se ty bloky používají zaregistruje blok pro výpis „HOT“ produktů, nebo zase modul pro články si regne blok pro výpis kategorii apod.

No nenašel jsem způsob jak to udělat pomocí toho co již v nette je k dispozici, takže proto tohle řešení.