2012-09-20 50 views
0

其實我想在結果 div中添加兩個選擇框,使用Ajax.I具有名爲ajaxFun的功能,用於檢索該兩個選擇框的值。我想呈現多個對象爲JSON.but但我不知道如何呈現以及如何從我的JavaScript函數檢索呈現的對象。如何呈現多個對象爲JSON以及如何從Grails中的<g: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> 

Controller類

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 
    } 
} 

在這裏,我想呈現兩個列表[操作人員respectievely ..]。 然後我也想知道如何從javascript函數中檢索呈現的對象。

Javascript函數

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

回答

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); 
} 

在您的控制檯中,您應該看到工作人員的內容,然後查找來自findAll的操作內容可能是您可以在JavaScript中使用的數組。

+0

:-sir again one doubt.I want to add the Staff and Operation values into a combo boxes.how to get the value of the list from the ** getFields ** function? – Krishna

+0

一旦你已經在responseText上調用了eval,那麼這兩個列表的值就在data.staff和data.operation中,你應該可以將它們作爲普通的javascript對象使用。 –