Formulář odesílá nezměněná data
- jirisolc
- Člen | 17
Zdravím,
vytvořil jsem formulář, kde je ve slick slideru několikrát textarea na
kterou je použit plugin TinyMCE. Každá textarea má nastavenou defaultValue.
Při odeslání formulář v POST posílá defaultValues namísto upravených
hodnot. Nevíte, kde by mohla být chyba?
Formulář vytvářím následujícím způsobem:
//AdminFormFactory
private function createForm(){
$form = $this->formFactory->create();
$form->addSubmit('save', 'Uložit');
return $form
}
public function createAdminMultiTextAreaForm($code){
$form = $this->createForm();
for($i = 1; $i <= 10; $i++) {
$form->addTextArea($code.$i)
->setRequired();
}
return $form;
}
//AdminPresenter
private function createMultiAreaForm($code){
$form = $this->adminFormFactory->createAdminMultiTextAreaForm($code);
$form->setDefaults([
$code.'1' => $this->content[$code.'1'],
$code.'2' => $this->content[$code.'2'],
$code.'3' => $this->content[$code.'3'],
$code.'4' => $this->content[$code.'4'],
$code.'5' => $this->content[$code.'5'],
$code.'6' => $this->content[$code.'6'],
$code.'7' => $this->content[$code.'7'],
$code.'8' => $this->content[$code.'8'],
$code.'9' => $this->content[$code.'9'],
$code.'10' => $this->content[$code.'10'],
]);
$form->onSuccess[] = [$this, 'contentFormSucceeded'];
return $form;
}
public function createComponentAboutForm(){
return $this->createMultiAreaForm('about');
}
public function contentFormSucceeded($form, $values){
//zde dumpne defaultní hodnoty
\Tracy\Debugger::barDump($values);
$this->contentManager->updateText($values);
$this->redirect('this');
}
Šablona:
{form aboutForm}
<div class="slick-admin">
{for $i = 1; $i <= 10; $i++}
<div>
<textarea n:name="about{$i}"></textarea>
</div>
{/for}
</div>
<input type="submit" n:name="save" class="btn btn-success">
{/form}
Na té samé stránce používám stejnou textareu, ale bez slick slideru a funguje v pořadku.