Ajax vykonani action nefunguje
- saimons
- Člen | 293
Mam takovy problem a nechapu proc mi nefunguje metoda action, nevite nekdo kde by mohla byt chyba, uz jsem zkusil snad vse co me napadlo? Metoda vloz mi funguje bez problemu.
presenter
<?php
public function renderVloz($strankaID) {
$stranka = new Admin_StrankyModels();
if ($this->isAjax()) {
$this->invalidateControl('list'); }
$this->template->stranky = $stranka->vypisStranky($strankaID);
$this->template->zpet = $stranka->vypisStrankyZpet($strankaID)->fetch();
$this->template->rodic = '0';
}
public function actionVlozRodicID($rodicID) {
$stranka = new Admin_StrankyModels();
if ($this->isAjax()) {
$this->validateControl();
$this->invalidateControl('list');
}
else
$this->redirect(':Admin:Stranky:vloz',1);
$this->template->rodic = '30';
//$this->template->rodic = $stranka->vypisStrankyZpet(30)->fetch();
}
?>
template
<?php
{snippet list}
<table class="listing" cellpadding="0" cellspacing="0" style="border: 0;">
<tr>
<th class="first"><a href="{link :Admin:Stranky:vloz, $zpet->id}" class="ajax">Zpět</a></th>
<th class="last">Vyberte</th>
</tr>
{foreach $stranky as $stranka}
<tr>
<td class="first style1"><a href="{link :Admin:Stranky:vloz, $stranka->id}" class="ajax">{$stranka->nazev}</a></td>
<td><a href="{link :Admin:Stranky:vlozRodicID, $stranka->id}" class="ajax"><img src="/images/admin/add-icon.gif" width="16" height="16" alt="" /></a></td>
</tr>
{/foreach}
</table>
<p>{$rodic}</p>
{/snippet}
?>
- Mikulas Dite
- Člen | 756
Nepoužíváš v tomto případě Nette správně. Nastuduj co to jsou signály: http://zdrojak.root.cz/…refactoring/, https://doc.nette.org/…n/presenters.
A předpokládám, že šablonu nemáš obalenou
<?php ?>
. Mrkni také na https://forum.nette.org/…v-tomto-foru#…
Edit: očividně jsem ti nerozumněl, co to vlastně má dělat. Pokud ta
metoda actionVlozRodicID
něco ukládá (jak invokuje název) tak
použí signály. Jinak nevím, co zamýšlíš.
Editoval Mikulas Dite (11. 11. 2010 19:32)
- saimons
- Člen | 293
Moje puvodni myslena byla takova, ze pomoci function renderVloz prochazim strukturu a pak mam tlacitko, kterym chci vlozit do komponenty formulare $form->addHidden(‚rodicID‘); to idecko toho konkretniho prvku. K tomu me mela slouzit metoda function actionVlozRodicID. Nejak takto jsem to myslel:
<?php
public function actionVlozRodicID($rodicID) {
$stranka = new Admin_StrankyModels();
if ($this->isAjax()) {
$this->invalidateControl('strankaForm');
$this['strankaForm']['rodicID']->value = $rodicID;
}
}
?>
<?php
{snippet strankaForm}
{widget strankaForm}
{/snippet}
?>