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 全体をフォームでラップしていました。これは機能しましたが、テーブルに 3 番目のフォームを追加したときに問題が発生しました。

選択したチェックボックスを渡すにはどうすればよいですか? すべてのボックスを選択するチェックボックスがあります-選択したボックスの配列で変数/hiddenFieldを割り当てるだけです。

ありがとう!

編集

単一のフォームを持つことの問題は、各行に列があり、1 対多の関係に要素を追加できることです。対応するアクション送信で 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>
4

2 に答える 2

0

単一のフォームと複数の g:actionSubmit ボタンで機能しますか?

特定のアクションにマップされる送信ボタンを生成します。これにより、1 つのフォームに複数の送信ボタンを含めることができます。- 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 に答える