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
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?
- Andre
- Člen | 24
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;
}
}