使用JSON对象添加下拉选项

时间:2013-06-12 19:44:52

标签: jquery ajax coldfusion

我正在使用ColdFusion 10通过AJAX获取数据,具体取决于所选的下拉列表。

<script>
function loadQuery() {
    var assign = $("#fcbCountry").val();
    $.ajax({
        type: 'get',
        url: 'http://127.0.0.1/WMT/model/getCandidate.cfc',
        data: {
            method: 'getRegions',
            country: assign
        },
        dataType: 'json',
        async: false,
        success: function (result) {

            var PosVar = result.DATA[0][1];
            alert(PosVar);
        }
    });

};
</script>

#fcbCountry的值传递给CFC,并将JSON返回给页面。 我通过使用alert函数来查看数据来确认这一点。

以可能称为ColdFusion JSON格式的方式返回数据:

数据:

{"COLUMNS":["STRVALUE","STRDISPLAY"],"DATA":[[0,null],[1,"Central"],[2,"Central-Detailee"],[3,"East"],[4,"North"],[5,"South"],[6,"Southwest"],[8,"West"]]}

我想循环JSON结果并为表单中的另一个选择框创建下拉选项。

我尝试拼凑一个例子,但是当我尝试这个时:

<script>
function loadQuery() {
    var assign = $("#fcbCountry").val();
    $.ajax({
        type: 'get',
        url: 'http://127.0.0.1/WMT/model/getCandidate.cfc',
        data: {
            method: 'getRegions',
            country: assign
        },
        dataType: 'json',
        async: false,
        success: function (result) {

            var PosVar = result.DATA[0][1];
            alert(PosVar);
        }
    });

    var options = $("#fcbRegion");
    $.each(result, function () {
            options.append($("<option />").val(this[index]]).text(this.STRDISPLAY));
    });

}
</script>

我收到一个错误,即没有定义loadQuery函数。

1 个答案:

答案 0 :(得分:2)

您的代码应该如下,

function loadQuery() {
    var assign = $("#fcbCountry").val();
    $.ajax({
        type: 'get',
        url: '/WMT/model/getCandidate.cfc',
        data: {
            method: 'getRegions',
            country: assign
        },
        dataType: 'json',
        success: function (result) {
            var options = $("#fcbRegion");
            $.each(result.DATA, function () {
                options.append($("<option />").val(this[0]).text(this[1]));
            });
        }
    });
}

loadQuery();