2012-06-05 39 views
1

我有一個基本的結構,例如:的Grails - 多種形式/傳遞遠程複選框選擇

<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,我最終都會得到一組所有人員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> 

回答

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> 
+0

是的 - 這是我認爲是工作。出於一些奇怪的原因,PersonId被填充所有的ID,而不是那個人實例的ID。 – user82302124

+0

這絕對是奇怪的。如果您查看html源代碼,隱藏元素的值中是否包含所有人員ID? – gabe

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>