Jak vypsat Group ve formuláři
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- elektricman
- Člen | 29
Zdravím,
potřeboval bych v šabloně vypsat jen manuálně jen jednu skupinu kompnonent
formuláře.
Nevíte Jak na to?
<div id="tabs-dialog" title="Detail Servisáka">
<ul>
<li><a href="#b-contact">Osobní údaje a kontakt</a></li>
<li><a href="#b-onaction">Na Akci</a></li>
<li><a href="#b-interests">Zájmy</a></li>
<li><a href="#b-diets">Diety a zdravotní stav</a></li>
</ul>
{$form->render('begin')}
{$form->render('errors')}
<div id="b-contact">
Kontakty a obecné udaje
</div>
<div id="b-onaction">
Co vykonává na akci za funkci, v jakém je teamu, kde ho najít, atd..
</div>
<div id="b-interests">
Zájmy, Škola, Práce, do čeho chtěl na akci jít, atd..
</div>
<div id="b-diets">
Diety a zdravotní stav Servisáka
</div>
{$form->render('end')}
</div>
do každýho divu potřebuju vypsat jednu skupinu z vygenerovaného formuláře
<?php
$form->addGroup('contact');
$form->addText('name', 'Jméno:')
$form->addText('surname', 'Příjmení:')
$form->addText('birthnumber', 'Rodné číslo:')
$form->addText('email', 'E-mail:')
$form->addText('tel', 'Mobilní Telefon:');
$form->addGroup('onaction');
$form->addText('date_arrival', 'Datum příjezdu:')
$form->addTextarea('note', 'Poznámka při registraci:');
$form->addTextarea('note_iternal', 'Poznámka interní:');
$form->addGroup('buttons');
$form->addSubmit('ok', 'Upravit')
->onClick[] = array($this, 'okClicked');
$form->addSubmit('cancel', 'Zavřít')
->setValidationScope(false) // prvek se nebude validovat
->onClick[] = array($this, 'cancelClicked');
?>
- Mikulas Dite
- Člen | 756
Možná funguje
<?php
foreach($form[$groupName]->getControls() as $control){
//render $control
}
?>
podle API https://api.nette.org/…rmGroup.html by to groupa umět měla.
- elektricman
- Člen | 29
Mikulas Dite napsal(a):
Možná funguje
<?php foreach($form[$groupName]->getControls() as $control){ //render $control } ?>
podle API https://api.nette.org/…rmGroup.html by to groupa umět měla.
Alias si přepsat reneder :)
Ale díky ;)
Jen mě mrzí že třebas Zend to umí sám o sobě,.. stačí napsat
echo $form->nazev_groupy
Zatím sem si napsal jen jednoduchej skriptík na výpis groupy přes array acces
<?php
$form = array();
foreach($this['form']->getGroups() as $group) {
$groupControls = $group->getControls();
$label = $group->getOption('label');
$form[$label] = '';
foreach($groupControls as $control) {
$form[$label] .= '<p>';
$form[$label] .= $control->getLabel();
$form[$label] .= $control->getControl();
$form[$label] .= '</p>';
}
}
$this->template->form = $form;
?>
vím, že to vypadá strašně, ale funguje to :)
Editoval elektricman (16. 2. 2010 13:05)