【问题标题】:Populating Select Combobox Form from external CSV file从外部 CSV 文件填充选择组合框表单
【发布时间】:2013-06-12 15:42:00
【问题描述】:

我正在使用此代码使用 ajax 将 CSV 导入 var,然后拆分由“\n”分隔的信息,然后填充表单中的选择框。

CSV 非常扁平,只有 1 列多行。添加了一个警报来监视进度.. 一切都很好,除了填充组合框时,它不是填充字符串内容,而是填充行数,由于某种原因,数组不是记录字符串而是记录行号。

<script>
$.ajax({
    url: 'URL CSV',
    success: function(data) {

        alert(data);

        var splitData=data.split("\n");

        for(pn in splitData){

            alert(splitData);

            $('#Entry_ID').append("<option value=\""+pn+"\">"+pn+"</option>");
        }
    }
});
</script>

(the form combobox code)

<select name="Entry.ID" id="Entry_ID" aria-required="true"></option>
</select>

【问题讨论】:

    标签: javascript ajax csv combobox populate


    【解决方案1】:

    您的错误在“for..in”循环中。像这样的代码:

    var arr = ["q", "w", "e"];
    for (var i in arr) {
        console.log(i)
    }
    

    将输出:

    0
    1
    2
    

    for..in 循环获取对象中每个项目的键并将其分配给 var。在数组中,键是它的位置。

    String 的方法 split 返回一个包含所有项目的数组。要遍历 splitData 数组,您可以:

    for (var i = 0; i < splitData.length; i++) {
        alert(splitData[i]);
        $('#Entry_ID').append("<option value=\"" + splitData[i] + "\">" +
            splitData[i] + "</option>");
    }
    

    splitData.forEach(function (item) {
        alert(item);
        $('#Entry_ID').append("<option value=\"" + item + "\">" + item + "</option>");
    });
    

    【讨论】:

    • 你完全正确,只需要添加几个}}来结束函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    相关资源
    最近更新 更多