0

データベースからこの結果が得られました。結果の数は、1 つ、複数、またはまったくない場合があります。返されたレジスタごとにテーブルが作成され、1 つの列内にチェックボックスが表示されます。ビューでは、どのチェックボックスがチェックされているかを知る必要があるため、テーブルの別の列の内容をコントローラーに渡して処理することができます。「データベースから人のリストが返されたので、全員ではなく一部の人にメールを送信したいのです。チェックボックスを選択し、「メール」列を探し、その人のチェックボックスがオンになっている場合は、メールが送信されます。」

それを達成する(できれば簡単な)方法はありますか?

ありがとうございました。

4

1 に答える 1

2

すべてのチェックボックスに同じ名前を付けますが、異なる値を指定すると:

<g:checkBox name="sendTo" value="${firstPerson.id}" checked="${false}"/>
....
<g:checkBox name="sendTo" value="${secondPerson.id}" checked="${false}"/>

次に、コントローラーで使用できます

params.list("sendTo").each { personId ->
  def person = Person.get(personId)
  // send email to this person
}

params.list()潜在的に多値のパラメーターを扱うときに知っておくと便利なツールです。標準でparams.sendTonull、チェックボックスが選択されていないString場合、1 つが選択されている場合は a List、2 つ以上が選択されている場合は a が表示されます。を使用params.list("sendTo")すると、常にa List(必要に応じてゼロ、1、または複数の要素) が得られます。

于 2012-10-10T09:58:34.093 に答える