[英]Typo3 (7.6.4) Extbase New Action arguments empty after submit
[英]Submit form to different action with typo3 flow
我有一個帶有用於創建用戶的表單的頁面。 用戶有一個愛好,可以通過單擊第二個按鈕來打開同一愛好頁面,該愛好可以在同一頁面上創建。 創建愛好后,應顯示先前的用戶表單,並在進入愛好頁面之前插入用戶輸入。
有沒有辦法在不使用AJAX的情況下處理typo3流量/流體?
我試圖通過單擊createHobby按鈕將輸入提交到其他操作->該操作將重定向到新的愛好頁面,用戶可以在其中創建愛好,並且在創建后應將其重定向回已填寫的用戶表單用戶輸入字段。
我用了...
<input type='submit' value='Create' formaction='/hobby/create' />`
為實現這一點,但uris似乎存在一些問題...我得到以下錯誤:
#1301610453: Could not resolve a route and its corresponding URI for the given parameters.
我認為使用屬性formaction
並不是在每種情況下formaction
好的解決方案,因為IE <10不支持它,如您在此處所見 。 我認為還應該考慮JavaScript反向移植(在實際提交表單之前,單擊第二個按鈕時動態更改表單的action
屬性)。
關於您的錯誤,您不應該(也可能永遠不)使用直接HTML輸入 ,而應着眼於Fluid ViewHelpers,它允許TYPO3創建正確的HTML輸入。
嘗試以下方法:
<f:form.submit value="Create" additionalAttributes="{formaction: '{f:uri.action(controller: \'hobby\', action: \'create\')}'}" />
您可以根據操作的參數在initializeAction
創建$this->forward(...)
。
假設您的默認Form動作是“ create”。 所以你需要一個initializeCreateAction
:
public function initializeCreateAction()
{
if ($this->arguments->hasArgument('createHobby')) {
$createHobby = $this->request->getArgument('createHobby');
if ($createHobby) {
$this->forward('create', 'Hobby', NULL, $this->request->getArguments());
}
}
}
現在,您必須將輸入createHobby
並將此參數分配給createAction
:
流體中:
<f:form.button type="submit" name="createHobby" value="1">Create Hobby</f:form.button>
在您的控制器中:
public function createAction($formData, $createHobby = false)
{
...
}
您能否解釋更多...顯示的內容與typo3無關,我不知道您在哪里插入了typo3的哪個版本,並使用了額外的擴展名?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.