gpt4 book ai didi

jquery - 如何在jQuery中遍历Grails映射

转载 作者:行者123 更新时间:2023-12-02 15:32:14 25 4
gpt4 key购买 nike

因此,我通过SQL在 Controller 中获得了一组结果并将其传递给GSP,然后将这些数据粘贴到一个隐藏字段中,如下所示:-

[
{forms_idx=0, form_id=21, events_idx=0, event_id=110, object_id=2, value=null},
{forms_idx=0, form_id=21, events_idx=1, event_id=109, object_id=3, value=null},
{forms_idx=1, form_id=22, events_idx=0, event_id=112, object_id=2, value=null},
{forms_idx=1, form_id=22, events_idx=1, event_id=111, object_id=1, value=null},
{forms_idx=2, form_id=23, events_idx=0, event_id=114, object_id=2, value=null},
{forms_idx=2, form_id=23, events_idx=1, event_id=113, object_id=3, value=null}
]

然后,我通过以下方式将其传递给jQuery函数:-
$(document).ready(function () {
testing($("#myresults").val());
});

我知道这行得通,因为我已经尝试过使用简单的静态值进行尝试,然后将警报添加到测试功能中。

我的问题是,我现在该如何在函数中放入某种简单的循环以处理传递给我的数据中的结果?我已经尝试了每个等等,但是它不起作用,我可能缺少了一些非常基本的东西,有什么建议吗?这是我目前正在尝试的...
function testing(results){
$.each(results, function(index, value){
alert(index + " " + value)
})
}

我也试过了,但是刚刚得到了 undefined的值...
function testing(results){
alert(results);
}

最佳答案

所以这里的问题是,隐藏字段保存数据字符串,而您想使用它,因为它将是JSON。您的选择:

  • Controller 中有单独的方法可返回JSON数据:
    import grails.converters.JSON;

    class MyController {
    def showData() {
    def myData = [some:'map']
    render myData as JSON
    }
    }

    然后在您的JavaScript中:
    $.getJSON('my/showData',function(jsonData){
    console.log( "Data ready to be used: " + JSON.stringify(jsonData) );
    });
  • 或在javascript变量而不是隐藏字段中输出JSON:
    <%@ page import="grails.converters.JSON" %>
    <r:script disposition="head">
    var myData = ${dataFromModel as JSON};
    console.log( "Data ready to be used: " + JSON.stringify(myData) );
    </r:script>
  • 或使用自定义的JavaScript解析器将您的字符串转换为JSON对象
    // TODO create parser :)
  • 关于jquery - 如何在jQuery中遍历Grails映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658456/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com