Vypsání kódu do stránky pouze po odeslání formuláře

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

Potřeboval bych za účelem trackování odeslání objednávek přes Google Analytics a Adwords nějakým způsobem zajistit, aby se mi kód vypsal do stránky pouze jednou na stránce s poděkováním za odeslání objednávky a to bezprostředně poté, co došlo k odeslání objednávky a přesměrování na tuto stránku. Pokud se poděkování zobrazí znovu, kód by se již vypsat neměl. Potřeboval bych vlastně dosáhnout stejného chování, jako má následující kód, který nastaví flashmessage, která se vypíše na redirectnuté stránce jen jednou, ale při opětovném načtění už ne.

public function orderFormSucceeded() {
	$this->flashMessage('Děkujeme za objednávku', 'alert-success');
	$this->redirect('Order:sent', $order->id);
}

Můžete mě prosím nějak nasměřovat, jak toho dosáhnout?

Šaman
Člen | 2666
+
0
-

Třeba příznakem v session. Mimochodem ta flashmessage se na pozadí taky ukládá do session.

Unlink
Člen | 298
+
0
-

Ulož si to do session a po zobrazení zmaž.

Andre
Člen | 24
+
0
-

Skvělé, děkuji moc. Kdyby to někoho zajímalo a řešil něco podobného, vyřešil jsem to takto:

public function orderFormSucceeded() {
		$order_session = $this->getSession('order');
		$order_session->order_sent = true;

		$this->flashMessage('Díky za objednávku.', 'alert-success');
		$this->redirect('Order:sent', $order->id);
}

public function renderSent($order_id) {
		$order_session = $this->getSession('order');
		if($order_session->order_sent) {
			$this->template->insertTrackingCode = true;
			$order_session->order_sent = false;
		} else {
			$this->template->insertTrackingCode = false;
		}
}