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
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
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');