1

我有一个基本结构:

<g:form>
   actionSubmit
</g:form>

<g:form>
  actionSubmit
</g:form>


<g:each in personList - variable=person>
   <tr>
     <td><g:checkBox name="personList" value="${person.id}" checked="${false}"/></td>
     <td>
         <g:form>
            actionSubmit
         </g:form>
     </td>
   </tr>
</g:each>

这些表单中的每一个都依赖于 personList 复选框数组作为变量。我的代码的先前版本将整个 div 包装在一个表单中,当我在表中添加第三个表单时,它可以工作但导致问题。

如何通过选定的复选框?我有选择所有框的复选框 - 我只需要为该选定框数组分配一个变量/hiddenField。

谢谢!

编辑

使用单一表单的问题在于,我在每一行中都有一列,能够将元素添加到一对多关系中。如果我可以通过相应的动作提交传递 person.id(所以如果我在第 2 行点击 actionSubmit,我想传递第 2 行的 person.id),那么这就是小菜一碟。

但是,每当我尝试绑定人员 ID 时,我都会得到一个 ALL 人员 ID 数组。所以我想解决这个问题的唯一方法是有单独的表格。

                            <td>
                                <div id="reportsToResultsDiv2_${person.id}" class="reportsToResultsDiv2_${person.id}">
                                    <g:select id="reportsTo" name="reportsTo.id" from="${rtResults}" optionKey="id" value="" />
                                    <g:actionSubmit action="addReportsTo" value="Add" params="[c_id:'${person.id}']"/>
                                </div>
                            </td>
4

2 回答 2

0

一个表单和几个 g:actionSubmit 按钮对你有用吗?

生成一个映射到特定操作的提交按钮,这使您可以在一个表单中拥有多个提交按钮。- http://grails.org/doc/latest/ref/Tags/actionSubmit.html

<g:form controller="book">
    <g:checkBox name="personList" value="${person.id}"/>
    <tr><td>
        <g:actionSubmit action="action1" value="firstButton"/>
    </td></tr>
    <tr><td>
        <g:actionSubmit action="action2" value="secondButton"/>
    </td></tr>
</g:form>
于 2012-06-05T03:25:04.537 回答
0

我不认为复选框既支持值又支持以这种方式检查。也许这就是你想要的?

<g:each in="${personList}" var="person>
    <g:form controller="person" action="doSomething">
        <g:hidden name="personId" value="${person.id}"/>
        <g:checkBox name="superFly" checked="${person.superFly}"/>
    </g:form>
</g:each>
于 2012-06-05T03:36:58.697 回答