簡體   English   中英

使用typo3流向不同的動作提交表單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM