0

実際には、Ajax を使用して結果divに 2 つの選択ボックスを追加したいと考えています。その 2 つの選択ボックスの値を取得するためのajaxFunという関数があります。複数のオブジェクトを JSON としてレンダリングしようとしていますが、JavaScript 関数からレンダリングされたオブジェクトをレンダリングする方法と取得する方法がわかりません。

私のGSPページ。

<table>
<tr>
<td><div id="test" onclick="${remoteFunction(controller:'ProjectOperations', action:'ajaxFun', update:'results',onComplete:'getFields(e)',params:'\'filter=\' + escape(this.id)' )}">click me!</div></td>
</tr>
</table>
<div id="results"></div>

コントローラ クラス

import grails.converters.JSON

class ProjectOperationsController {

    def ajaxFun(){
                def project="Hill"
                def company="VK"
        def operation=Operation.findAllByProject_name(project)
        def staff=StaffDetails.findAllByCompany_name(company)

        render operation,staff as JSON//am not sure 
    }
}

ここでは、2 つのリストをレンダリングしたいと思います [それぞれ操作とスタッフ..]。次に、JavaScript関数からレンダリングされたオブジェクトを取得する方法も知りたいです。

JavaScript 関数

<g:javascript>
  function getFields(e){ 
// here I want to retrieve that two objects.
 } 
 </g:javascript>
4

1 に答える 1

0

コントローラーチェンジで

    render operation,staff as JSON//am not sure 

    render [operation:operation,staff:staff] as JSON

次に、JavaScriptで

 function getFields(e){
    var data = eval("("+e.responseText+")");
    console.log(data.staff);
    console.log(data.operation);
 }

コンソールには、staff の内容が表示され、その後、おそらく findAll からの操作の内容が、JavaScript で操作できる配列になるはずです。

于 2012-09-20T12:17:07.850 に答える