Vykreslení hodnoty checkobxu v šabloně
- Taps
- Člen | 169
Zdravím, mám dotaz zda je možné vykreslit hodnotu value v šabloně u formulářového prvku checkbox, viz níže ? U addText se mi v šabloně hodnota vykreslí v pořádku, ale u addCheckbox nikoliv. Případně existuje možnost jak níže uvedenou problematiku lépe vyřešit. Děkuji
Presenter
public function renderZobrazit($id){
$this->template->projektFoto = $this->ProjektyRepository->fetchFoto($id);
}
public function createComponentPopisFoto(){
$form = new Form();
$form->addText('nazev_cz', 'Název (cz)');
$form->addText('nazev_en', 'Název (en)');
$form->addCheckbox('odstranit', 'Odstranit');
$form->addSubmit('save', 'Uložit');
$form->onSuccess[] = callback($this, 'ZpracovatFormular');
return $form;
}
Šablona
block content}
{form popisFoto}
{foreach $projektFoto as $foto}
<div class="celekFoto">
<div class="vlevoFoto">
<img src="{$basePath}/images/projekty/miniatury/{$foto['projekty_id']}/{$foto['foto']}">
</div>
<div class="vpravoFoto">
{label nazev_cz /}<br>
{input nazev_cz, value => $foto['nazev_cz']}<br>
{label nazev_en /}<br>
{input nazev_en, value => $foto['nazev_en']}<br>
<br>{input odstranit, value => $foto['id']}
</div></div>
{/foreach}
{input save}
{/form}
<br>
{/block}
- David Matějka
- Moderator | 6445
vytvor si dynamicky containery pro kazdou fotku, viz https://doc.nette.org/cs/forms#… do tech containeru pak pridas nazev_cz atd..
tohle ti nemuze fungovat, jelikoz vykreslujes jeden input xkrat, v php by
ale pak prisla pouze jedna hodnota pod tim nazvem nazev_cz
- Azathoth
- Člen | 495
@Taps a jak by to podke tebe mělo fungovat? chechbox je zaškrtávaví, tedy boolean.Hodnota value je buď prázdná(nezaškrtnuto) a nebo ‚checked‘(zaškrtnuto). Pokud se nepletu, tak do checkboxu nic jiného nacpat nejde a ani nemá dmysl tam nic jiného cpát. Trochu se rozepiš o tom, proč chceš dávat do checkboxu něco jiného než boolean.
- Taps
- Člen | 169
@matej21
Děkuji
upravil jsem to takto:
public function createComponentPopisFoto($name){
$form = new Form($this,$name);
$containerNazevCz = $form->addContainer('nazev_cz');
$containerNazevEn = $form->addContainer('nazev_en');
$containerOdstranitFoto = $form->addContainer('odstranit');
foreach($this->fotky as $fotky){
$containerNazevCz->addText($fotky->id)->setDefaultValue($fotky->nazev_cz);
$containerNazevEn->addText($fotky->id)->setDefaultValue($fotky->nazev_en);
$containerOdstranitFoto->addCheckbox($fotky->id)->setDefaultValue($fotky->id);
}
$form->addSubmit('save', 'Uložit');
$form->onSuccess[] = callback($this, 'ZpracovatFormular');
return $form;
}
Můžeš mi prosím ještě poradit jak mohu container vykreslit v šabloně . Děkuji
Editoval Taps (26. 10. 2014 14:36)