Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多个对象呈现为JSON以及如何从<;g:javascript>;圣杯?_Javascript_Ajax_Json_Grails - Fatal编程技术网

如何将多个对象呈现为JSON以及如何从<;g:javascript>;圣杯?

如何将多个对象呈现为JSON以及如何从<;g:javascript>;圣杯?,javascript,ajax,json,grails,Javascript,Ajax,Json,Grails,实际上,我想使用Ajax在resultsdiv中添加两个选择框。我有一个名为ajaxFun的函数来检索这两个选择框的值。我试图将多个对象呈现为JSON。但我不知道如何呈现以及如何从javascript函数中检索呈现的对象 我的普惠制页面 <table> <tr> <td><div id="test" onclick="${remoteFunction(controller:'ProjectOperations', action:'ajaxFun', up

实际上,我想使用Ajax在resultsdiv中添加两个选择框。我有一个名为ajaxFun的函数来检索这两个选择框的值。我试图将多个对象呈现为JSON。但我不知道如何呈现以及如何从javascript函数中检索呈现的对象

我的普惠制页面

<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>
在这里,我要呈现两个列表[分别为操作和人员..]。 然后我还想知道如何从javascript函数中检索渲染对象

Javascript函数

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

函数getFields(e){
//这里我想检索这两个对象。
} 

在控制器更改中

    render operation,staff as JSON//am not sure 

然后在javascript中

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

在您的控制台中,您应该看到staff的内容,然后是findAll中的操作内容,这些内容可能是您可以在JavaScript中使用的数组。

:-sir还有一个疑问。我想将staff和操作值添加到组合框中。如何从getFields函数检索该列表的值?一旦在responseText上调用eval这两个列表的值位于data.staff和data.operation中,然后您应该能够将它们作为普通javascript对象使用。
    render [operation:operation,staff:staff] as JSON
 function getFields(e){
    var data = eval("("+e.responseText+")");
    console.log(data.staff);
    console.log(data.operation);
 }