addDynamic uprava formulara
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- attika8
- Člen | 23
Ahojte,
potreboval by som poradiť, upravujem formular v ktorom mám addDynamic komponentu s klucovymi slovami.
Takto vyzera moj edit formular
<?php
$form = new Form;
$form->addHidden('id_book');
$form->addText('name','Názov:')
->setRequired('Prosím zadajte názov knihy');
$form->addText('author','Autor:')
->setRequired('Prosím zadajte autora knihy');
$presenter = $this;
$invalidateCallback = function () use ($presenter) {
/** @var \Nette\Application\UI\Presenter $presenter */
$presenter->invalidateControl('edit_kniha');
};
$form->addGroup('Kľúčové slová');
$replicator = $form->addDynamic('keywords', function (Container $slovo) use ($invalidateCallback) {
$slovo->addText('word', 'Kľúčové slovo:')->setRequired();
$slovo->addSubmit('remove', 'Smazat')
->addRemoveOnClick(callback($this,'MyFormRemoveElementClicked'));
}, 0);
/** @var \Kdyby\Replicator\Container $replicator */
$replicator->addSubmit('add', 'Přidat další klíčové slovo')
->addCreateOnClick($invalidateCallback);
$form->addSubmit('send', 'Upravit knihu')
->onClick[] = callback($this, 'editFormSubmitted');
$form->action .= '#snippet--edit_kniha';
return $form;
?>
Hodnoty sa mi nacitaju spravne aj s id_book.
Potom mam metodu ked kliknem na zmazat klucove slovo, tak mi vyhodi ID
<?php
public function MyFormRemoveElementClicked(Kdyby\Replicator\Container $replicator, Container $slovo)
{
$id = $slovo->name;
// tuto potrebujem id_knihy aby som mohol vymazat slovo+knihu z databaze
}
?>
Čo ale potrebujem zistit je id knihy v tej metode. Viete mi poradit ako sa
k tomu dostat aby som so mohol dalej spracovat?
Dakujem
Editoval attika8 (19. 3. 2013 17:50)