prepisovanie session hodnot po odoslani form

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

Zdravim. V actionShow ziskavam id udajov z db a zapisujem do session :

....
$test = $this->getModel("testsModel")->select("a_b_tests")->where($where1,$where2)->order("RAND() ASC")->limit($params['question_quantity']);

foreach($test as $t){
            array_push($array_questions_id, $t['id']);
        }
        $session = $this->getSession('questions_select');
        $session->question_select = $array_questions_id;
...

a vykreslujem formular kde použivam tieto hodnoty zo session, lenze po odoslaní formulara ked si dam tieto hodnoty vypísat zo session tak su uz ine hodnoty tých idčiek. Vsetko je v ramci jedneho presenteru. Vykona sa znova nejako ten select z db… Viete ako to vyriesit ? dakujem

pave.kucera
Člen | 122
+
0
-

Pokud je ten dotaz na databázi a zapsání do session opravdu v action metodě, tak se to provádí při každém načtení stránky, ať už jsi formulář odeslal, či ne. Jestli potřebuješ, aby k tomu nedocházelo při odeslání formuláře, musíš zapsání do session nějak podmínit, eg.

<?php
// presenter
if (!$this['form']->isSubmitted()) {
	// store data in session
}
?>
erzzo
Člen | 49
+
0
-

diki pekne ;)