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
+
0
-

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);
    }
}
David Matějka
Moderator | 6445
+
0
-

Zkus Kdyby/Replicator.

iwory
Člen | 147
+
0
-

Pomohlo, díky