Autor | Zpráva | ||
---|---|---|---|
piiiiiiiip Profil |
#1 · Zasláno: 19. 6. 2016, 11:10:29
Dobrý den.
Vytvářím anketu v nettte a narazil jsem na menší zádrhel. Potřebuju udělat formulář na vytvoření a upravení ankety, kde vyplním otázku a odpovědi. S těma odpovědma jsem ale narazil na problém. Potřebuji aby se mi zobrazily dvě políčka pro odpovědi když anketu vytvářím a vždy když jedno vyplním oběví se další prázdné. Nakonec všechny ty odpovědi uložím do db jako array, nevím ale jak na ten form. |
||
Dan Charousek Profil |
#2 · Zasláno: 19. 6. 2016, 12:05:40
Něco takového?
|
||
piiiiiiiip Profil |
#3 · Zasláno: 19. 6. 2016, 12:10:00
Ano.
|
||
piiiiiiiip Profil |
#4 · Zasláno: 20. 6. 2016, 14:31:44
Jak to zprovozním v nette? Já do formuláře nedostanu div.
|
||
Kcko Profil |
#5 · Zasláno: 20. 6. 2016, 15:11:40
piiiiiiiip:
Pokud máš tyhle otázky tak prosímtě v Nette vůbec nedělej a vydej se opačnou cestou od základů směrem nahoru ... |
||
piiiiiiiip Profil |
Tak ono to jde i na id formu ale jen na djpw a na webu ne.
Kcko: Učím se to od základů. |
||
Keeehi Profil |
#7 · Zasláno: 20. 6. 2016, 20:14:28
piiiiiiiip:
„Já do formuláře nedostanu div.“ Ale dostaneš, v nejhorším případě nebudeš formulář vykreslovat automaticky ale ručně. |
||
piiiiiiiip Profil |
Ano, to už jsem si našel a použil jsem místo toho id formuláře. Ještě jsem to sice nezorchodil ale už se k tomu blížím (snat).
Když dám do formuláře jen odpovědi a submit tak se mi ty inputy ukáží, mimo skupinu ale ukáží. $form = new Form; $form->addGroup('answersGroup'); $answers = $form->addContainer('answers'); $answers->addText('answers', 'Odpověd'); $submit = $form->setCurrentGroup(NULL); $submit->addSubmit('submit', 'Vytvořit Anketu.'); $form->onSuccess[] = [$this, 'polleditorFormSucceeded']; return $form; $form = new Form; $form->addHidden('poll_id'); $form->addGroup('Otázka'); $form->addText('question', 'Otázka')->setRequired(); $form->addText('url', 'URL')->setRequired(); $form->addGroup('answersGroup'); $answers = $form->addContainer('answers'); $answers->addText('answers', 'Odpověd'); $submit = $form->setCurrentGroup(NULL); $submit->addSubmit('submit', 'Vytvořit Anketu.'); $form->onSuccess[] = [$this, 'polleditorFormSucceeded']; return $form; |
||
Zechy Profil |
piiiiiiiip:
Myslím, že to, co hledáš je (dle příspěvku #2 a #3) Kdyby\Replicator, pokud chceš pracovat s tím, co ti vrátí $form->getValues() , jinak musíš využít třídu Nette\Http\Request, abys dostal vlastní hodnoty z formuláře.
EDIT: Pokud chceš totiž dynamicky přidávat pole formuláře, obstará to za tebe nejlíp Replicator, kdy pak snadno ty pole získáš ve $form->getValues() . Jinak si v Nette vytvoř základ pro formulář, kde v latte obalíš makrem {form} vlastní inputy a ty pak můžeš zpracovat pomocí třídy Nette\Http\Request.
|
||
piiiiiiiip Profil |
Jak to nainstaluju?
Nainstaloval jsem to přez composer require kdyby/forms-replicator:@dev a upravil jsem C:\xampp\htdocs\first-test\app\config\config.neon na extensions: replicator: Kdyby/Replicator/DI/ReplicatorExtension Class 'Kdyby/Replicator/DI/ReplicatorExtension' not found |
||
Feed Profil * |
Zechy:
Ono jde rozjet i to, co posílal Dan Charousek, stačilo by místo $form->getValues() použít $values = $form->getHttpData($form::DATA_TEXT, 'answers[]');, ale je rozumější použít ten replikátor, mnohem lépe se s tím pracuje (validace a pod). piiiiiiiip: Stačí otevřít odkaz "dokumentace" a dostaneš se sem github.com/Kdyby/Replicator/blob/master/docs/en/index.md |
||
Jan Tvrdík Profil |
#12 · Zasláno: 21. 6. 2016, 11:47:21
piiiiiiiip:
Máš obráceně lomítka, správně je to Kdyby\Replicator\DI\ReplicatorExtension
|
||
piiiiiiiip Profil |
#13 · Zasláno: 21. 6. 2016, 11:58:40
Feed:
Podle toho jsem postupoval a vyhodilo mi to tu chybu. |
||
Keeehi Profil |
piiiiiiiip:
Tak znovu - „Máš obráceně lomítka“. Z té dokumentace je lepší kopírovat, pak bys takovou chybu nemohl udělat. |
||
piiiiiiiip Profil |
#15 · Zasláno: 21. 6. 2016, 12:32:28
Těch lomítek jsem si všímnul, opravit a stále to nefunguje. Pořát ta stejná chyba.
|
||
Dan Charousek Profil |
#16 · Zasláno: 21. 6. 2016, 12:33:19
piiiiiiiip:
„Pořát ta stejná chyba.“ A prozradíš nám o jakou chybu se jedná? |
||
piiiiiiiip Profil |
#17 · Zasláno: 21. 6. 2016, 12:38:54
Dan Charousek:
Už jsem ji sem kopírovall. piiiiiiiip: > a haží mi to chybu. > Class 'Kdyby/Replicator/DI/ReplicatorExtension' not found |
||
Keeehi Profil |
#18 · Zasláno: 21. 6. 2016, 14:18:46
Pokud se i v chybě nezměnily lomítka, tak jsi to neopravil.
|
||
Jan Tvrdík Profil |
#19 · Zasláno: 21. 6. 2016, 15:22:21
piiiiiiiip, Keeehi:
Nebo to dělá na serveru a nesmazal cache. |
||
piiiiiiiip Profil |
#20 · Zasláno: 21. 6. 2016, 15:33:31
Ta lomítka se v té chybě změnila. Vypadá tet takto: Class 'Kdyby\Replicator\DI\ReplicatorExtension' not found.
Cache jsem mazal, nevím jestly správně. Do routeru jsem vložil. Environment::getCache()->clear(); |
||
Feed Profil * |
#21 · Zasláno: 21. 6. 2016, 23:00:18
piiiiiiiip:
Smazat ve složce temp/cache složky a soubory (ručně) ... a jakou verzi používáš? |
||
piiiiiiiip Profil |
Smazání cache nepomohlo. Verzi nette mám Nette-2.3.10.
Tet mi to vypisuje chybu: Class 'Nette\Loaders\NetteLoader' not found |
||
Časová prodleva: 9 let
|
0