0

このコードを使用して、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>
4

1 に答える 1

0

エラーは「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>");
});
于 2013-06-16T17:34:51.657 に答える