invalidace řádku addDynamic
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- phoniq
- Člen | 17
Ahoj, potřeboval bych docílit invalidace řádku přidávaného pomocí Replicatoru metodou AddDynamic. Jde mi o to, že když změním hodnoty v políčku množství, tak potřebuji vypočítat a následně vyplnit ostatní políčka na řádku <tr n:snippet=„zboziItem-$id“/>
presenter:
protected function createComponentProdejForm() {
$form = new Nette\Application\UI\Form;
$form->addSelect('sklady_id', 'Sklady:', $sklady)
->setDefaultValue(1)
->setRequired('Vyberte sklad');
$zbozi = $form->addDynamic('zboziItem', function (Container $zboziItem) use ($invalidateCallback, $zboziRows, $baleniRows) {
$zboziItem->addSelect('zbozi_id', 'Zboží:', $zboziRows)
->setAttribute('class', 'ajax')
->setRequired('Vyberte zboží')
->setPrompt('Vyberte zboží')
->setAttribute('onchange', 'zmena(this)');
$zboziItem->addText('mnozstvi', 'Množství:', 4, 4)
->setAttribute('class', 'ajax')
->setType('number')
->addRule(Form::MIN, "Zadaná hodnota musí být větší než nula!", 1)
->setAttribute('onchange', 'zmena(this)');
$zboziItem->addText('cenaMJ', 'CenaZaMJ:', 7)
->setDisabled();
$zboziItem->addText('dph', 'DPH:', 7)
->setDisabled();
$zboziItem->addText('celkemSDPH', 'Celkem s DPH:', 10)
->setDisabled();
$zboziItem->addSubmit('remove', '-')
->addRemoveOnClick();
$zboziItem->addSubmit('add', '+')
->addCreateOnClick();
}, 1);
$form->addSubmit('send', 'Uložit')
->setAttribute('class', 'btn btn-lg btn-primary btn-block');
$form->onSuccess[] = array($this, 'prodejFormSucceeded');
return $form;
}
template:
{snippet prodejForm}
{form prodejForm}
<div class="row">
{label sklady_id /}{input sklady_id}
</div>
<div class="row">
<table class="table">
<tr class="active">
<th class="text-right">Zboží</th>
<th class="text-right">Množství</th>
<th class="text-right">Cena za MJ</th>
<th class="text-right">DPH</th>
<th class="text-right">Celkem s DPH</th>
<th class="text-right"></th>
</tr>
<tr n:snippet="zboziItem-$id" n:foreach="$form['zboziItem']->containers as $id => $zboziItem">
<td class="text-right">{input $zboziItem['zbozi_id']}</td>
<td class="text-right">{input $zboziItem['mnozstvi']}</td>
<td class="text-right">{input $zboziItem['cenaMJ']}</td>
<td class="text-right">{input $zboziItem['dph']}</td>
<td class="text-right">{input $zboziItem['celkemSDPH']}</td>
<td class="text-right">
{input $zboziItem['remove']} {input $zboziItem['add']}
</td>
</tr>
</table>
</div>
{input send}
{/form}
{/snippet}
Editoval phoniq (12. 1. 2016 7:45)