Jquery 不要用自己的方式格式化数据。不要依赖CF如何为您构建json结构。如果CF更改了查询中json结构的构建方式,该怎么办?未来证明总是一个好主意。谢谢斯科特!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎

Jquery 不要用自己的方式格式化数据。不要依赖CF如何为您构建json结构。如果CF更改了查询中json结构的构建方式,该怎么办?未来证明总是一个好主意。谢谢斯科特!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎,jquery,arrays,json,coldfusion,Jquery,Arrays,Json,Coldfusion,不要用自己的方式格式化数据。不要依赖CF如何为您构建json结构。如果CF更改了查询中json结构的构建方式,该怎么办?未来证明总是一个好主意。谢谢斯科特!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎么做呢?你可以在列列表上循环以动态创建结构。非常感谢。我本来会投票给它答案的,但鉴于最初的问题,我不得不投票给另一个。但作为一个整体解决方案,您的解决方案真是太棒了。谢谢Scott!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是


不要用自己的方式格式化数据。不要依赖CF如何为您构建json结构。如果CF更改了查询中json结构的构建方式,该怎么办?未来证明总是一个好主意。谢谢斯科特!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎么做呢?你可以在列列表上循环以动态创建结构。非常感谢。我本来会投票给它答案的,但鉴于最初的问题,我不得不投票给另一个。但作为一个整体解决方案,您的解决方案真是太棒了。谢谢Scott!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎么做呢?你可以在列列表上循环以动态创建结构。非常感谢。我本来会投票给它答案的,但鉴于最初的问题,我不得不投票给另一个。但作为一个整体解决方案,您的解决方案真是太棒了。谢谢Scott!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎么做呢?你可以在列列表上循环以动态创建结构。非常感谢。我本来会投票给它答案的,但鉴于最初的问题,我不得不投票给另一个。但作为一个整体解决方案,您的解决方案真是太棒了。谢谢Scott!我完全理解你为什么这么做,我也尝试了一下,效果很好。。。。但是当一个查询最多可以包含50列时,应该怎么做呢?你可以在列列表上循环以动态创建结构。非常感谢。我本来会投票给它答案的,但鉴于最初的问题,我不得不投票给另一个。但作为一个整体解决方案,您的解决方案真是太棒了。
    {
    "Modules": {
        "COLUMNS": [
            "MODULECODE",
            "MODULETITLE"
        ],
        "DATA": [
            [
                "A001",
                "The Middle Ages"
            ],
            [
                "M001",
                "Civil Liberties"
            ],
            [
                "H001",
                "Project Preparation"
            ]
        ]
    },
    "Courses": {
        "COLUMNS": [
            "COURSETITLE",
            "COURSECODE"
        ],
        "DATA": [
            [
                "Marketing",
                "00007001"
            ],
            [
                "Fashion and Textile Buying Management",
                "00006002"
            ]
        ]
    }
}
$(document).ready(function() {
    $('#UserCode').blur(function() {
        $.ajax({
            type: 'get',
            url: 'mydata.cfc',
            data: {method:'getData', UserCode:$(this).val()},
            dataType: 'json',
            success: function(result){
                $.each(result, function(index, valueA){
                    $.each(valueA, function(index, valueB){
                        // Trying to append to the #Courses <select> element
                        $('#Courses').append('<option value="'+valueB[1]+'">'+valueB[2]+' ('+valueB[1]+')</option>');
                    });
                });                                 
            }
        });
    });
});
...
success: function(result){
    for(var i=0;i<result.Courses.Data.length;i++)
        $('#Courses').append('<option value="'+result.Courses.Data[i][1]+'">'+result.Courses.Data[i][2]+'('+result.Courses.Data[i][1]+')</option>');

    for(var i=0;i<result.Modules.Data.length;i++)
        $('#Modules').append('<option value="'+result.Modules.Data[i][1]+'">'+result.Modules.Data[i][2]+'('+result.Modules.Data[i][1]+')</option>');
});
<cffunction name="GetStuff" >
    <cfset var ret = {} />
    <!--- code for queries here --->
    <cfset var qry1Data = [] />
    <cfloop query="query1">
        <cfset var item = {"modulecode" = query1.modulecode, "moduletitle" = query1.moduleTitle} />
        <cfset arrayAppend( qry1Data, item ) />
    </cfloop>
    <cfset ret["modules"] = qry1Data/>
    <cfset var qry2Data = [] />
    <cfloop query="query2">
    <cfset var item = {"coursecode" = query1.coursecode, "coursetitle" = query1.courseTitle} />
        <cfset arrayAppend( qry2Data, item ) />
    </cfloop>
    <cfset ret["courses"] = qry2Data />
    <cfreturn ret />
</cffunction>
$(document).ready(function() {
$('#UserCode').blur(function() {
    $.ajax({
        type: 'get',
        url: 'mydata.cfc',
        data: {method:'getData', UserCode:$(this).val(), returnFormat : 'JSON'},
        dataType: 'json',
        success: function(result){
            $.each(result.modules, function( index, val ) ){
                $("#Modules").append('<option value="' + val.modulecode + '">' + val.moduletitle + ' (' + val.modulecode + ')</option>');
                $("#Courses").append('<option value="' + val.coursecode + '">' + val.coursetitle + ' (' + val.coursecode + ')</option>');
            }                                
        }
    });
});
$.each(result.modules, function( index, val ){

});