【问题标题】:Extbase: Check if a form has been submitted in a controller actionExtbase:检查表单是否已在控制器操作中提交
【发布时间】:2017-04-20 08:46:09
【问题描述】:

我有一个表单,我想在其中显示 html 链接。为了避免用户在点击链接时丢失表单输入,我想在用户离开表单之前通知他。

为此,我尝试了

public function registerAction(Registration $registration = null) {
    $formHasBeenSubmitted = !is_null($registration);
    $this->view->assign('formHasBeenSubmitted', $formHasBeenSubmitted);
}

但它总是假的。

确定特定操作的表单是否已提交的正确方法是什么?

undkos answer之后更新:

  • 我想在表单已提交但验证错误出现时显示消息,当然在用户开始输入数据时也显示。
  • 链接后面有一个表单,用于编辑主表单上显示的数据(邮政地址),编辑后应在此处更新。

【问题讨论】:

  • 这意味着如果验证失败,您有一个createAction 将用户循环回registerAction?在这种情况下,您的表单是否正常工作(即显示已填写的值和验证错误消息?
  • 在验证错误的情况下循环回到registerAction 是 extbase 的默认行为,并且非常有意义,因为用户必须调整表单中的数据。是的,在这种情况下,表单可以正常工作。
  • 那很奇怪。验证失败时你调试过$registration的值吗?
  • $registration 在这两种情况下都是错误的:第一次加载表单和验证错误

标签: php typo3 extbase


【解决方案1】:

作为用户,我不在乎表单是否已提交或“只是”填写 - 因此我建议只要您的表单中有数据就创建一个模式。 提高可用性的另一种可能性是创建带有target 属性的链接。模态和目标都强加了自己的问题,因此总是需要权衡取舍。

【讨论】:

  • 感谢您的留言,这实际上是一种不同的方法,但不是我的问题的答案。
  • 我明白了。评论就足够了:-)
猜你喜欢
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多