Tôi đang phát triển một trang web trong Wordpress. Trang web cần phải có một combobox với tất cả các quận. Tôi có tập dữ liệu ở định dạng csv có một số hàng 10k cho tất cả các hạt này. Khi người dùng chọn một hạt trong menu thả xuống, tôi chỉ muốn dữ liệu hạt được chọn được hiển thị trong trang web. Đây là yêu cầu của tôi.Tải tệp CSV vào một mảng
Trong wordpress, trang web của tôi, tôi đang bổ sung thêm file js sử dụng
<script type="text/javascript" src="http://xxx/wp content/uploads/2014/05/countyList1.js"></script>
và mã cho trang web thả xuống là
<select name="county" id="county" onload="setCounties();" onchange="getSelectedCountyData();"></select>
Trong countyList1.js nộp Tôi có setCounties() và các hàm getSelectedCountyData().
Cho đến giờ tôi có thể thấy danh sách thả xuống có danh sách các hạt. Tôi không biết cách đọc tệp CSV và áp dụng bộ lọc hạt đã chọn vào danh sách này.
Tôi đã thử đối tượng FileReader và tôi có thể tải nội dung CSV trên trang web nhưng tôi không muốn người dùng chọn CSV. Tôi đã có tập dữ liệu rồi.
Tôi đang cố gắng sử dụng thư viện jquery.csv-0.71 này từ bài đăng SO How to read data From *.CSV file using javascript? nhưng tôi cần trợ giúp.
Dưới đây là đoạn code mà được gọi khi một quận được chọn
function getSelectedCountyData() {
cntrySel = document.getElementById('county');
//selCty = countyList[cntrySel.value];
handleFiles();
}
function handleFiles() {
$(document).ready(function() {
$.ajax({
type: "GET",
url: "D:\Docs\Desktop\csvfile.csv",
dataType: "csv",
success: function (data) { processData(data); }
});
});
}
function processData(allText) {
var allTextLines = allText.split(/\r\n|\n/);
var headers = allTextLines[0].split(',');
var lines = [];
for (var i = 1; i < allTextLines.length; i++) {
var data = allTextLines[i].split(',');
if (data.length == headers.length) {
var tarr = [];
for (var j = 0; j < headers.length; j++) {
tarr.push(headers[j] + ":" + data[j]);
}
lines.push(tarr);
}
}
console.log(lines);
drawOutput(lines);
}
function drawOutput(lines) {
//Clear previous data
document.getElementById("output").innerHTML = "";
var table = document.createElement("table");
for (var i = 0; i < lines.length; i++) {
var row = table.insertRow(-1);
for (var j = 0; j < lines[i].length; j++) {
var firstNameCell = row.insertCell(-1);
firstNameCell.appendChild(document.createTextNode(lines[i][j]));
}
}
document.getElementById("output").appendChild(table);
}
@Teemu Sau khi xóa nó, tôi nhận được lỗi không thể đọc thuộc tính ajax không xác định. Cảm ơn bạn đã giúp đỡ. – Aqua267