změna třídy pokud je checkbox zaškrtnutý
- Webster.K
- Člen | 212
Ahoj všichni, jak se tak prokousávám Nette, našel jsem další problém… Tentokrát u checkboxlistu. Do šablony si vracím formulář, který má kus kodu:
$form->addCheckboxList('dny', '', $this->cas->seznamDnu())->setAttribute('class', 'checkbox-hidden');
$form->setDefaults(array('dny'=>array('2016-10-30','2016-11-05')));
A pak jej vypisuji v šabloně:
<div class="text-center alert alert-danger">
{input dny:$den}
{$den|date:'%A %d.%m.%Y'}
</div>
Jak ale udělám, když místo třídy alert-danger chci použít alert-success jen v případě, že je daný checkbox zaškrtnutý? Ať hledám, jak hledám, řešení jsem zatím nenašel :/
- Webster.K
- Člen | 212
Dokážu tímto udělat i když je prvek zaškrtnutý? Řešení které mi funguje je, že jsem si udělal funkci, kterou volám v obou částech, jednou jako $this->template->hodnota = funkce() a podruhý když vytvářím formulář a v latte (protože to stejně ty prvky co potřebuji vypisuji polem) podmínku, ve které mám že když se hodnota toho cyklu rovná hodnotě předaný hodnoty, tak jí vypíšu, jinak ne a když se vypíše, zvýším index o 1, takže vím kdy vypsat příště (předávaný hodnoty jsou v poli). Je to krkolomný, ale funguje to :) v latte to vypadá takto:
{form volneDnyForm}
{foreach $seznamDnu as $den}
{if $iterator->first}
{var $cyklus = 0}
{/if}
<div class="col-lg-2">
{if $den==$volneDny[$cyklus]}
<div class="text-center alert alert-success">
{input dny:$den}
{$den|date:'%A %d.%m.%Y'}
</div>
{var $cyklus = $cyklus + 1}
{else}
<div class="text-center alert alert-danger">
{input dny:$den}
{$den|date:'%A %d.%m.%Y'}
</div>
{/if}
</div>
{/foreach}
<div class="col-lg-12">
{input save}
</div>
{/form}
Kdyby měl někdo nějaký lepší nápad, sem s ním :) zatim jsem na nic lepšího nepřišel :/
- blaztar
- Člen | 93
Co něco takového.
{form volneDnyForm}
{var $checked = $form['dny']->getValue()}
<div class="col-lg-2" n:foreach="$seznamDnu as $den">
<div n:class="'text-center alert', in_array($key, $checked) ? 'alert-success' : 'alert-danger'">
{input dny:$den}
{$den|date:'%A %d.%m.%Y'}
</div>
</div>
<div class="col-lg-12">
{input save}
</div>
{/form}
Editoval blaztar (28. 10. 2016 18:25)