Pozdější naplnění selectu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- SvvimX
- Člen | 65
Ahoj, prosím o radu mám formulář
class CBasketAddForm extends \CBaseForm {
public function __construct( IContainer $parent = NULL, $name = NULL ) {
parent::__construct( $parent, $name );
$this -> addSelect( 'size' )
-> setRequired ( 'Vyberte prosím velikost' )
;
...
A select size jakoby nemá žádné optiony. Ty mu také přiřadí až presenter, který se dozví, jaké velikosti, že to vlastně máme.
$form = $this -> getComponent( "basketAddForm" );
$lager = \CProductLagerManager:: getAll( $id );
$form [ 'size' ] -> items = $lager; //zkoušel jsem i setItems
Formulář se dobře zobrazí, ale jelikož Nette hlídá, aby se odeslalo jen co je definováno v možnostech (nic) tak todle nefunguje.
Ještě jsem to upravil tak, že formulář select neobsahoval, až v továrničce jsem udělal
$form = new CBasketAddForm;
onSuccess handleAddToBasket ( CBasketAddForm $form );
Díky moc za radu
- uestla
- Backer | 799
Ahoj.
protected function createComponentBasketAddForm()
{
$form = new CBasketAddForm;
$form->setSizeItems( \CProductLagerManager::getAll($id) );
// ...
return $form;
}
class CBasketAddForm extends \CBaseForm
{
// ...
function setSizeItems($items)
{
$this['size']->items = $items;
}
}
Píši to z paty, ale mohlo by to fungovat.
Editoval uestla (4. 8. 2012 8:57)