Dynamický obsah SELECTU v snippete posiela „null“?
- xrep
- Člen | 51
Ahoj,
Mám vytvorený form a ten obsahuje selectbox „type“ a selectbox „parent“ asi nejako takto:
<?php
$form->addSelect( "type", $this->_t( 'messages.categoriesPresenter.catType' ) , $types )
->setAttribute( "class", "form-control")
->setPrompt( $this->_t( 'messages.categoriesPresenter.selectCatType' ) )
->setRequired( $this->_t( 'messages.categoriesPresenter.notSetLabelCat',['label' => "%label"] ));
// Category Parent
$form->addSelect( "parent", $this->_t( 'messages.categoriesPresenter.parent') )
->setAttribute( "class", "form-control")
->setPrompt( $this->_t( 'messages.categoriesPresenter.selectTypeFirst' ) )
->setRequired( $this->_t( 'messages.categoriesPresenter.notSetLabelCat',['label' => "%label"] ));
?>
Na select type mam nahookovany AJAX request cez nette.ajax.js, handler robi nieco taketo:
<?php
if ( in_array( $value, $this->categories->getCategoryTypes() ) ) {
// we need to get possible parents for a type
$categories = $this->categories->findCategories( [ "type" => $value, 'lang' => $this->currentLang ] );
foreach ($categories as $category) {
$parents[ $category->getId() ] = $category->name;
}
$this[ "categoryForm" ][ "parent" ]->setItems( $parents )
->setPrompt( $this->_t( 'messages.categoriesPresenter.selectParentType' ) );
}
$this->redrawControl( 'parentsSnippet' );
?>
„parent“ select sa pri zmene typu normalne nacitava a prepisuje, snippet sa invaliduje vsetko fajn az na to ze, hodnota „parent“ select-u je vzdy NULL. A mne to vyhodi vynimku.
A este vacsia sranda je, ze ak dam z „parent“ prec vlastnost required, tak v onValidate funkcii mi stale debugger ukazuje, ze hodnota „parent“ selectu je NULL, ale nejaky undefined zazrak sposobuje, ze to ulozi spravnu hodnotu.
Moze prosim niekto napisat preco sa to deje, a ako to obist?
Dakujem
- xrep
- Člen | 51
@duskohu vdaka nie, sa mi zda zbytocne, mam na celej stranke jednu takuto vec a inde podobny problem nemam cize sa mi moc nechce instalovat kvoli tomu dalsi extension
@Čamo vdaka za tip, momentalne to riesim tak ze, parent mam nastaveny ako nevyzadovany a osetrujem ho extra v onValidate, kde si prave hodnoty vytiahnem cez $form->getHttpData();