Vypisování hidden inputu v šabloně

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

Ahoj. Narazil jsem na takový problém. Mám továrničku, kde vytvářím formulář.

public function create()
    {
        $form = new Form;

        $form->addDynamic('days', function (Container $day) {
            $day->addText('open', 'Od');
            $day->addText('close', 'Do');
			//tady je název toho dne
            $day->addHidden('day');
            $day->setDefaults($this->editModel->getSingleDayOpenTime($this->dayIndex));
            $this->dayIndex++;
        }, 7);

        $form->addSubmit('send', 'Uložit');

        $form->onSuccess[] = array($this, 'formSucceeded');
        return $form;
    }

Jedná se o formulář, který by měl umožnit editaci otevírací doby. Teď ale věc, ve které bych potřeboval pomoc. Řešení, které jsem udělal je asi úplná blbost (když se nad tím teď tak zamyslím). V továrničce jsem si vytvořil hidden input (v naději, že by to přes něj snad nějak šlo) a v šabloně potřebuji, abych jej mohl vypisovat před inputem, ve kterým lze upravit otevírací dobu. Napadá někoho, jak to udělat?

<form n:name="editOpenTimeForm" class="form-horizontal">
    {foreach $form['days']->containers as $id => $day}
    <div class="form-group">
        <label for="day" class="col-sm-2 control-label">TADY POTŘEBUJU NÁZEV TOHO DNE</label>
        <div class="col-sm-10">
            <div class="col-sm-2">
                <input n:name="days-$id-open" type="text" class="form-control" id="day" placeholder="Od">
            </div>
            <div class="col-sm-2">
                <input n:name="days-$id-close" type="text" class="form-control" id="day" placeholder="Do">
            </div>
        </div>
    </div>
    {/foreach}

    <div class="form-group">
        <div class="col-sm-10">
            <button type="submit" class="btn btn-default">Uložit změny</button>
        </div>
    </div>
</form>

Editoval HonDem (26. 7. 2015 12:46)

Myiyk
Člen | 321
+
+1
-

Nejjednodušší řešení je dát to jako normální input, ale zakázat jej.
Tím jej člověk nemůže editovat, ale nebude to v hodnotách z formuláře.
Pokud si ten den potřebuješ předat do zpracování, tak použij obojí.

$form->addText('showDay', "Den")->setDisabled(TRUE);
$form->addHidden('day');