Přidání textových polí po submit formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- iwory
- Člen | 147
Zdravím, je nějaká možnost jak přidat pole do formuláře po submitu?
Respetivě mám formulář kde se do jednoho sloupce zadává čílo. Po odeslání formuláře potřebuju zachovat data a k tomu samému formuláři přigenerovat X polí podle daného čísla. Ty uživatel doplní a odešle celý formulář najednou.
První část není takovej problém. Bohužel se mi ale následně do submitu nedostanou ty přigenerované pole.
Mužu poprosit o pomoc. Je možné že na to jdu špatně, ale tak
netuším…
Díky
class LeadFormKVIFFG14Control extends BaseControl
{
/** @var array */
private $config;
/** @var Context */
private $database;
/** @var LeadKVIFFG14Model */
private $leadModel;
/** @var MobileDetector */
private $mobileDetector;
/** @var int */
protected $answers = 0;
public function __construct(Context $database, LeadKVIFFG14Model $leadModel, $config, MobileDetector $mobileDetector)
{
parent::__construct();
$this->config = $config;
$this->database = $database;
$this->leadModel = $leadModel;
$this->mobileDetector = $mobileDetector;
}
public function render()
{
if($this->answers !== 0)
{
for($i = 0; $i < $this->answers; $i++)
{
$this['leadForm']->addText('answer' . $i, 'Odpověď');
}
}
$this->template->setFile(__DIR__ . '/LeadFormKVIFFG14.latte');
$this->template->render();
}
public function createComponentLeadForm($name)
{
$form = new UI\Form($this, $name);
$form->addText('name', 'Jméno')->setRequired('Zadejte jméno');
$form->addText('surname', 'Přijmení')->setRequired('Zadejte přijmení');
$form->addText('email', 'E-mail')->addRule(UI\Form::EMAIL, 'E-mail není ve správném tvaru');
$form->addText('phone', 'Telefon')->addCondition(UI\Form::FILLED)->addRule(UI\Form::INTEGER, 'Telefon může obsahovat pouze číslice');
$form->addText('receipt', 'Účtenka')->addRule(UI\Form::INTEGER, 'Číslo účtenky může obsahovat pouze číslice');
$form->addText('beers', 'Počet piv')->addRule(UI\Form::INTEGER, 'Počet piv musí být číslo');
$form->addSubmit('createAnswer', 'Odeslat');
$form->addSubmit('save', 'Odeslat');
$form->onSuccess[] = array($this, 'leadFormSubmitted');
return $form;
}
public function leadFormSubmitted(UI\Form $form)
{
$values = $form->getValues();
$this->answers = $values->beers;
db($values);
}
}