CD-colletion – nefunkční odeslání vykresleného formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- biolit
- Člen | 11
Ahoj Všem,
potřeboval bych postrčit asi s úplnou maličkostí.
Vzal jsem si ukázkovou aplikaci CD-collection a rozchodil na NETTE
2.0 MYSQL. – vše bez „větších“ problémů.
Nyní jsem si chtěl pouze vyzkoušet vykrelit formulář manuálně, jak je
na tomto webu popsáno:
a místo:
{block #content}
<h1 n:block="title">Edit Album</h1>
{control albumForm}
jsem napsal:
{block #content}
<h1 n:block="title">Edit Album</h1>
{form albumForm}
<table>
<tr>
<td bgcolor="#0099CC">{label artist /}</td>
<td bgcolor="#339999">{label title /}</td>
</tr>
<tr>
<td>{input artist}</td>
<td>{input title}</td>
</tr>
</table>{input save}{input cancel}
{/form}
a po tomto zásahu se nic nestane, nedojde k uložení.
v presenteru je toto:
protected function createComponentAlbumForm()
{
$form = new Form;
$form->addText('artist', 'Artist:')
->setRequired('Please enter an artist.');
$form->addText('title', 'Title:')
->setRequired('Please enter a title.');
$form->addSubmit('save', 'Save')->setAttribute('class', 'default');
$form->addSubmit('cancel', 'Cancel');
$form->onSuccess = callback($this, 'albumFormSubmitted');
$form->addProtection('Please submit this form again (security token has expired).');
return $form;
}
public function albumFormSubmitted(Form $form)
{
if ($form['save']->isSubmittedBy()) {
$id = (int) $this->getParam('id');
if ($id > 0) {
$this->albums->where('id',$id)->update($form->values);
$this->flashMessage('The album has been updated.');
} else {
$this->albums->insert($form->values);
$this->flashMessage('The album has been added.');
}
}
$this->redirect('default');
}
díky za jakoukoliv radu.
- biolit
- Člen | 11
Tak jsem nejprive přidal {input _token_}
{block #content}
<h1 n:block="title">Edit Album</h1>
{form albumForm}
{input _token_}
<table>
<tr>
<td bgcolor="#0099CC">{label artist /}</td>
<td bgcolor="#339999">{label title /}</td>
</tr>
<tr>
<td>{input artist}</td>
<td>{input title}</td>
</tr>
</table>{label save /}{input save}{label cancel /}{input cancel}
{/form}
ale to nepomohlo. Zkusil jsem tedy upravit chybu v makru dle zaslaneho postu, stále stejný – tedy žádný výsledek.