formulare, kontajnery v sablone

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

Krasny den.

mam formular ktery slouzi k vytvoreni dopisu, mam nejakou spolecnou cast, jako je nazev atd. A pak mam jednotlive odstavce kterych muze byt dopredu neznamy pocet. Kazdy odstavec obsahuje polozky id, nadpis, text a obrazek.

odstavce jsem do formulare pridaval pomoci addContainer:

<?php
$count = 5;
$form = new Form();
$form->addGroup('Obecné');
$form->addText('nazev', 'Název:', 100)->addRule(Form::FILLED, 'Je nutné zadat název.');
form->addGroup('Odstavce');
for ($a = $i; $a <= $count + $i; $a++) {
    $frm = $form->addContainer("odstavec" . $i);
    $frm->addText("nadpis", "nadpis", 100);
    $frm->addUpload("obrazek","Obrázek");
    $frm->addHidden("id");
}
...
?>

potreboval bych vedet jak pri zpracovani muzu pak pracovat s jednotlivymi odstavci ?
zprovoznil jsem si to pri ukladani, podle me, ne moc peknym hackem:

<?php
$i = 1;
while ($odstavec = $form->getComponent("perex" . $i, false)) {
  $napis = $odstavec->values->nadpis;
  ...
  $i++;
}
?>

ted bych potreboval v sablone pri vypisu jednotlivych odstavcu v editovatelnem formulari, ke kazdemu odstavci zobrazit drive uploadovany obrazek.
potreboval bych vedet jak se odkazu v makru {label $name \} treba na odstavec2->nadpis. a jak si vylistuju jednotlive kontajnery odstavcu v makru n:foreach ?

Dekuji Honza Vrana

frosty22
Člen | 373
+
0
-

Možná bych doporučil:

<?php
$count = 5;
$form = new Form();
$form->addGroup('Obecné');
$form->addText('nazev', 'Název:', 100)->addRule(Form::FILLED, 'Je nutné zadat název.');
$form->addGroup('Odstavce');
$container = $form->addContainer("odstavce");
for ($a = $i; $a <= $count + $i; $a++) {
    $block = $form->addContainer($i);
    $block->addText("nadpis", "nadpis", 100);
    $block->addUpload("obrazek","Obrázek");
    $block->addHidden("id");
}
...
?>

A poté již:

<?php
$blocks = $form->getComponent("odstavce");
foreach ($blocks->getControls() as $block) {
  echo $block["nadpis"]->value;
}
?>
vraja
Člen | 6
+
0
-

Krasny den,

dekuji tohle funguje, nenapdalo me vlozit kontajnery jeste do jednoho
kontajneru.

Honza Vrana