1

GSPg:selectで 1 番目のコンボボックス ( ) 値の選択に2 番目のコンボボックス ( ) 値をロードしようとしています。g:select

ドメイン クラス:

class Person {    
   String name
   static hasMany = [telephones:Telephone]
}

class Telephone {    
   String tNumber
   Person person

   static belongsTo = [person:Person]

}

GSP:

<td>
<g:select id="person" name="selectedPersonId" from="${Person.list(sort:name, order:asc)}" value="name" optionValue="name" optionKey="id" noSelection="['0':'--Select--']" />
</td>
<td>
<g:select id="telephone" name="selectedTelephoneId" from ="${person.telephones}" value="tNumber" optionValue="tNumber" optionKey="id" noSelection="['0','--Select--']"/>
</td>

どうすればこれを適切に行うことができますか?

4

4 に答える 4

2

ページがレンダリングされるときに 2 番目のコンボボックスにアイテムを入力しないでください。最初のコンボボックスで値が変更されたときに入力します。

<td>
<g:select id="person" name="selectedPersonId" from="${Person.list(sort:name, order:asc)}" value="name" optionValue="name" optionKey="id" noSelection="['0':'--Select--']" />
</td>
<td>
<g:select id="telephone" name="selectedTelephoneId" from ="${[]}" value="tNumber" optionValue="tNumber" optionKey="id" noSelection="['0','--Select--']"/>
</td>

最初のコンボボックス (jquery またはプレーン Javascript を使用できます) に onchange イベントを追加します。これにより、選択した人物に基づいて電話データが入力されます。ここでは、サーバーへの ajax 呼び出しを使用して、次のようなアクションを実行できます。

def getTelephones = {
    def telephoneInstanceList = Telephone.findAllByPerson(Person.get(params.personId))
    def telephones = telephoneInstanceList.collect {[id: it.id, phone: it.tNumber]}
    render telephones as JSON
}
于 2011-01-14T16:09:15.720 に答える
1

まず、使用する div を形成するためにテーブルを使用しないでください。最初の g:select 内で remoteFunction を使用して、現在の選択をパラメーターとして渡すと、呼び出しは次のようになります。

"${remoteFunction(action: 'methodName', update: 'DivToUpdate', params: '\'id=\'+this.value')}"

コントローラーのメソッドで、2 番目の g:select を含むテンプレートに render を呼び出します。この g:select は、コントローラーのフィールド値またはパラメーターの情報を使用できます。お役に立てれば

于 2013-02-08T16:38:44.690 に答える
0

この質問はあなたの質問に似ています: Grails: Load data on one ComboBox 依存する別の. 基本的にはyogiebizの回答と同じですが、いくつかの異なるオプションをお勧めします.

于 2011-01-16T01:03:04.737 に答える
0

更新: Grails はその後、これに関する wiki ページを投稿しました: https://grails.org/AJAX-Driven+SELECTs+in+GSP

于 2014-07-21T18:13:53.413 に答える