그래서이 하나는 저를 곤혹스럽게합니다. HTML
테이블을 가져 와서 월별 항목 수를 나타내는 선 그래프를 생성해야합니다. 현재 DataTables
이 (가) 테이블을 생성하고 소스 데이터를 수정할 수 없습니다. 나는 나를 위해 선 그래프를 생성하기 위해 Flot을 사용할 것이다. Flot 함수는 아래와 같이 데이터 집합을 필요로합니다.변수를 배열의 배열로 변환
예상 데이터 집합 : 나는 테이블 데이터에서 위의 데이터 세트를 생성하고 Flot
함수에 전달해야합니다 DataTables
기능 fnInitComplete 동안
[ [1, 3], [2, 14], [3, 3] ]
. 이는 그래프가 요구되는 테이블만큼 동적임을 보장합니다. 여기
는 내가 지금까지 무엇을 가지고 : (불완전 DataTables 기능을하지만, 나머지는이 질문에 필요하지 않습니다)$(document).ready(function() {
// The unimportant DT part
var sTable = $('#sTable').dataTable({ ... });
// What I currently have
var items=[]; // The wrapper for my dataset (array)
//Iterate all td's in eighth column
$('#sTable tbody tr td:nth-child(8)').each(function(){
//convert to jsDate from MySQL timestamp
var dateParts = $(this).text().split("-");
var jsDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2].substr(0,2));
var n = jsDate.getMonth();
//In my table I have March (represented as 2) five times so
//console.log(n); will print 2 five times.
});
});
그리고 이것은 지금까지 내가 불행하게도 입수했습니다 같습니다. 최선의 방법은 n
값을 가져 와서 변수 이름으로 지정하여 변수를 2로 정의한 다음 2++
과 같은 작업을 수행 할 수 있다고 생각합니다. 이 방법은 각 달에 대해 숫자로 반환됩니다. 그 번호 다음에 이름이 지정된 변수가 있고 .each 함수에있는 횟수가 포함됩니다. 또한 변수가 존재하는 곳에서 수개월만으로 제한 할 수 있으므로 전달해야하는 데이터 집합을 간단히 만들 수 있습니다.
JavaScript로 작업하는 데 많은 경험이 없으므로 도움을 주시면 대단히 감사하겠습니다.
원본 데이터 (및 결과 데이터)를 표시 한 다음 하나를 다른 것으로 변환하기 위해 독립 실행 형 함수를 작성하는 데 집중하십시오. –
당신이 원했던 것은 아니지만 [html5csv] (https://github.com/DrPaulBrewer/html5csv)라는 또 다른 lib에서 할 수 있습니다. 플롯과 테이블 데모에 대해서는 http://jsfiddle.net/DrPaulBrewer/XaGUd/를 참조하십시오 - 테이블 데이터를 긁고 'begin()'매개 변수를'#myTableID '와 같은 jQuery 셀렉터로 대체하면 대신에 데이터를 가져옵니다. 그림과 같이 자체 데이터를 생성 할 수 있습니다. 또한 표가 머리글 행의 이점을 얻을 수 있습니다. – Paul