Redirect a zaroven POST

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

ahojte,

chcel by som redirectnut na presenter a zaroven mu predat data pomocou metody POST.
da sa to nejako?
diky

Panda
Člen | 569
+
+1
-

Nedá. Jediné, co můžeš (a musíš) uvést při přesměrování, je nová adresa. Přesměrování s žádnými dalšími daty protokol HTTP neumožňuje. Jediné, jak toho docílit, je přesměrování a pak odeslání nějakého formuláře JavaScriptem.

Na co to potřebuješ? Určitě bude jiné řešení.

Tomik
Nette Evangelist | 485
+
0
-

Lze post data uložit (např. do sessions), a pak redirect, a po redirectu data opět vyzvednout.

bazo
Člen | 620
+
0
-

nj. uz som zistil, ze tadeto cesta nevedie. ale da sa spravit forward, ktory data aj postne. ale neumoznuje ziskat response.

chcem urobit zivy nahlad pisanej stranky v cms.

takze som zostavil nieco taketo:

<?php
$request = new PresenterRequest('Front:Preview', 'POST', array('action' => 'preview'), array('values' => $values));
$presenter = new Front_PreviewPresenter();
$response = $presenter->run($request);
?>

z $response ale neviem vytiahnut vyrenderovane HTML

Davelister
Člen | 28
+
0
-

Podle mě na to jdeš špatně, určitě by to nešlo udělat bez přesměrování?

Ondřej Mirtes
Člen | 1536
+
0
-

Ano, popiš přesně, co potřebuješ a navrhneme ti nějaké čisté řešení :) Tyto věci nejsou skutečně potřeba.

bazo
Člen | 620
+
0
-

chcem urobit zivy nahlad na pridavany prispevok, ako bude vyzerat na stranke. vyriesil som to ako som uz pisal vyssie pomocou tohto

<?php
$request = new PresenterRequest('Front:Preview', 'POST', array('action' => 'preview'), array('values' => $values));
$presenter = new Front_PreviewPresenter();
$response = $presenter->run($request);
?>

html ziskam takto

<?php
ob_start();
$response->send();
$html = ob_get_clean();
?>

a pomocou javascriptu si to zobrazim.

teraz ma skor trapi to, ze v handle metodach nejde zmenit view presenteru.

Editoval bazo (2. 1. 2010 19:54)

Ondřej Mirtes
Člen | 1536
+
0
-

A co AJAX? V něm to jde čistě – prostě budeš AJAXově odesílat formulář. Pokud bude Javascript vypnutý, Nette provede tu samou akci, akorát se mezitím znovunačte stránka no.

Můžeš se inspirovat v Texyle, ta přesně toto dělá. https://forum.nette.org/…iewtopic.php?…