流体模板和 TYPO3:表单内的表单 - 提交不再有效



如果我在表单中插入表单,则"外部"表单中的提交按钮不再起作用。

简短的代码示例:

<f:form action="update" name="examples" object="{examples}" >
  <f:for each="{examples}" as="example"
    <f:form.textfield property="name" value="" />
    <f:form.checkbox property="checked" value="1" checked="0" /><br />
    <f:form action="delete" name="example" object="{example}" >
        <f:form.submit value="delete" />
    </f:form>
<f:form.submit value="update" />
</f:form>

基本上(这是我现实生活项目的极为简化的版本(,我希望能够更改TextField和复选框的值,然后将其传递给更新。每个循环仅生成多个条目,因此多个形式仅包含该特定对象的删除按钮,以便说话。我可以通过__IDENTITY解决这些对象,可以用它们旁边的按钮删除它们,这不是问题。

但是,如果我将其他表格和各自的提交按钮放入此表格中,则更新的提交按钮将不再起作用。

有什么解决方案吗?

表单内部的表单不起作用(也不是适当的html(。

更长的版本回答您没有提出的问题:要在此处实现目标,请使用f:link.action{example}对象作为参数创建指向delete控制器操作的链接。然后样式的该链接看起来像一个按钮。

与typo3或流体完全无关,您应该知道不允许筑巢形式。

但是,至少可以使用单个表格使您的代码编辑部分有效:

<f:form action="update" name="examples" object="{examples}" >
  <f:for each="{examples}" as="example" iteration="i">
    <f:form.textfield property="{i}.name"/>
    <f:form.checkbox property="{i}.checked" value="1"/>
  </f:for>
  <f:form.submit value="update"/>
</f:form>

使用此设置,由于您需要一个执行两件事的提交按钮,因此也无法进行删除操作:

  1. 请求delete操作:

    <f:form.button type="submit" name="action" value="delete">Delete</f:form.button>

  2. 在实体上指向地址:

    <f:form.button type="submit" name="example" value="{example}">Do something with {example.title}</f:form.button>

您应该添加一个单独的视图,以编辑单个example对象。然后,当前视图成为具有指向该编辑视图的链接的列表。在该视图中,您的表格object成为一个example,它允许您为每个action添加两个提交按钮。

最新更新