opozdeny ajaxovy formular

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bazo
Člen | 620
+
0
-

zdravicko,

neviem ci je to vec nette alebo dibi ale pri jednom forme sa mi deje takato vec:
pri ajaxovom odoslani formu sa mi form vrati vyplneny presne tak ako som ho vyplnil, co som predtym este nevidel, a polozky v jednom selecte su ako keby o jednu verziu pozadu. tie polozky sa vyberaju z databazy a odoslanim tohto formu sa jedna polozka prida medzi tie, ktore sa selektuju do formu. snad je to jasne.
problem je v tom, ze najprv sa vykonaju vsetky selecty az nakoniec ten insert.
kod(zjednoduseny):

<?php
public function createComponentFormNewMenuItem()
{
	$form = new AppForm();
	$form->addText('title', 'Title')->addRule(Form::FILLED);
	$items=this->model('menuItems')->getByMenuId($this->menu->id)->fetchPairs('id_level','title');
	$form->addSelect('parent_data', 'Parent', $items);
	$form->addSubmit('save','Add');
	$form->onSubmit[] = array($this, 'formNewMenuItemSubmitted');
	return $form;
}

public function formNewMenuItemSubmitted($form)
{
	$values = $form->getValues();
	$this->model('menuItems')->create($values); //insert do db - prebehne az po invalidacii
	$this->invalidateControl('frmNewItem');
}
?>

neviete niekto co s tym?
diky

bazo
Člen | 620
+
0
-

nikto ziadny napad?

lucass
Člen | 89
+
0
-

Podle mě to souvisí buď s životním cyklem toho formu, nebo s opožděným zápisem do DB, že dříve ta data čteš, než tam jsou fyzicky uložená. Zkusil bych si to asi debugovat na místech, kde se provádí čtení a zápis, abych zjistil pořadí, v jakém to probíhá. Jak ti to funguje bez ajaxu?

bazo
Člen | 620
+
0
-

ano je to tym, ze sa najprv precita z db az potom sa vlozi. aj sa to spomina v prvom prispevku.

bez ajaxu to funguje presne rovnako, lenze sa potom presmeruje a tak sa znova nacitava z db a data su aktualne.

vlastne moja otazka od zaciatku mala byt preco sa ten zapis do db vykona az nakonci? a preco sa mi ten form vrati vyplneny tak ako som ho odoslal?