Coldfusion使用ajax第2部分填充下拉列表

时间:2013-05-06 19:07:27

标签: javascript ajax jquery coldfusion

所以,由于前一个问题的一些很好的反馈,我已经进一步发展了: 原帖 - Coldfusion Populate form with dropdown selection using ajax

所以现在,我已成功向我的CFC提交了一个请求,它有一个远程功能,但我没有收到任何返回浏览器的内容。

代码如下所示:

<script>
function loadQuery() {
var assign = $("#existingAssignment").val(); // Get the value of the select box so we can build the next page

$.ajax({
    type: 'get',
    url: 'http://127.0.0.1/WMT/model/getCandidate.cfc', 
    data: {method:'getExistingAssignPosInfo', tourid : assign},
    dataType: 'json',
    async: false,
    success: function(result){
        var myDP4 = $('#dp4').val(result.STROTG);
        $('#dp4').val(result.STROTG);
        $('#dp5').val(result.STRDEPART);
    }
}); 
}
</script>

我正在尝试让jQuery将结果(我们可以在Firebug中看到它们)替换为表单字段。这些字段的名称为dp4dp5等。我已尝试将结果设置为myDP4并设置该值但不起作用。

我还尝试向屏幕发出警报,这不起作用,因为我认为它会将警报放在ajax调用上。

填写表单值后,唯一要做的就是在屏幕上设置两个下拉菜单,使其等于传回的数字。

例如:

<option value="1">Name1</option>
<option value="2">Name2</option>
<option value="3">Name3</option>
<option value="4">Name4</option>

如果我的ajax返回3作为带有选项的select的名称,我将如何将该信息发送到jQuery,以便它在下拉列表中选择它?

TIA!

更新:我添加到我的CFC中的一件事是returnformat="JSON"之前没有的东西,当我直接调用CFC时,我确实看到了一个JSON对象。但是,如下所示,没有前导斜杠。

由于

更新#2:

这是我从直接调用页面回来的JSON

{
    "COLUMNS": [
        "STRPOSTITLE",
        "STROFFICE",
        "STROTG",
        "STRDEPART",
        "FDREDITASSIGN1STRNR_FROM",
        "FDREDITASSIGN1STRNR_TO",
        "FDREDITASSIGN2NDRNR_FROM",
        "FDREDITASSIGN2NDRNR_TO",
        "FDREDITASSIGN3RDRNR_FROM",
        "FDREDITASSIGN3RDRNR_TO",
        "FDREDITASSIGN4THRNR_FROM",
        "FDREDITASSIGN4THRNR_TO",
        "FTAEDITASSIGNTOURCOMMENTS",
        "FTAMISSIONEDITASSIGNTOURCOMMENTS"
    ],
    "DATA": [
        [
            1872,
            19,
            "February, 20 2013 00:00:00",
            "February, 19 2014 00:00:00",
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null
        ]
    ]
}

更新#3:好的,我可以填写我想要的数据,但仍有一些工作要做。我将数据填入正确的表单字段中,但我需要设置下拉列表以匹配返回的内容。查询返回一个数字。该数字将与下拉列表的选项值相匹配。我一直试图找到它:

$('#PosTitle').find('option:eq(PosVar)').prop('selected', true);

但这并没有设定价值。

再次感谢!

1 个答案:

答案 0 :(得分:0)

根据我在评论中看到的内容,您没有正确地序列化您的JSON。查看Adobe encode的文档,以确保您有一个JSON格式的字符串传递给您的AJAX请求。