[TYPO3-mvc] Forwarding action without loosing request parameters
Thomas "Thasmo" Deinhamer
thasmo at gmail.com
Sun Nov 1 21:28:44 CET 2009
That's all a bit weird.
I changed the method to 'redirect()', but now the following accours:
If I use method="post" in the <f:form> tag, it will redirect me to
http://my-domain.tld//<title>.<id>.<type>.html?&tx_ext_plugin[action]=index&tx_ext_plugin[controller]=PluginController&cHash=<hash>
The weird is, that the two "//" won't be recognized by TYPO3 and the
homepage will be shown with no error-handling page defined in the
install-tool. (Also 'index' as controller is wrong, but should be
overwritten with the POST variable anyways.)
If I use method="get" in the <f:form> tag, the form action attribute of
http://my-domain.tld/<title>.<id>.<type>.html?&tx_ext_plugin[action]=calculate&tx_ext_plugin[controller]=PluginController&cHash=<hash>
won't be used as the destination uri, further more ONLY the valuepairs
which are in the form will be sent as querystring, which resulst in:
http://my-domain.tld//<title>.<id>.<type>.html?tx_ext_plugin[__referrer][extensionName]=ExtName&tx_ext_plugin[__referrer][controllerName]=PluginContro...
which completely skips the dstination controller 'calculate' which was
set in the action or the form.
I'm using Firefox 3.5.4.
Any ideas? Is this a bug?
Thanks!
Jochen Rau schrieb:
> Hi Thomas.
>
>> The process looks like the following:
>> 1. Index action gets called, showing a form in index.html
>> 2. Form gets submitted with the action "calculate"
>> 3. Variable gets assigned, forwarding to index action
>> 4. {address} is not available in the view/template
>>
>> Is there a way to either forward the {address} to the index action,
>> or a way to use the same template/view for the calculate action also?
>
> Maybe you would like to invoke redirect() instead of forward(). This
> will persist your calculated address by finalizing the actual request
> and sending a new one.
>
> class MyController extends Tx_Extbase_MVC_Controller_ActionController {
>
> /**
> * The main action
> * @param string $newAddress
> * @dontvalidate $newAddress
> */
> public function indexAction($newAddress = NULL) {
> // Display Form
> }
>
> /**
> * The calculate action
> *
> * @param string $address
> * @validate $address Alphanumeric
> */
> public function calculateAction($address) {
> $this->view->assign('address', $address);
> $this->redirect('index');
> }
> }
>
> The methods redirect() and forward() are defined in the ActionController
> of Extbase.
>
> Regards
> Jochen
>
>
More information about the TYPO3-project-typo3v4mvc
mailing list