Ich möchte ein Diagramm mit Amcharts
anzeigen, ich habe eine dataTable mit count/groupBy
aus der Datenbank. Jetzt möchte ich das Diagramm dynamisch anzeigen, ich möchte die dataTable iterieren und die erste und die zweite Spalte im Array chartData
nacheinander erstellen. Das ist mein Datatable: Diagramme dynamisch aus dataTable anzeigen
Stat.xhtml
<h:form id="ff">
<rich:dataTable id="tablereparation" value="#{stat.results}" var="rep">
<h:column headerClass="headerleftfacet">
<h:outputText id="np" value="#{rep[0]}" /></h:column>
<h:column headerClass="headermiddlefacet">
<h:outputText id="nbpanne" value="#{rep[1]}" />
</h:column>
</rich:dataTable>
</h:form>
test.js
var chart;
var legend;
//my attempt
var table = document.getElementById('ff:tablereparation');
var rows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
var cells = rows[i].getElementsByTagName("td");
for (var j = 0; j <= 0; j++) {
var cell = cells[j];
alert(cells.innerHtml);
}
}
var chartData = [{
panne: ?,
percpangrave: ?
}];
chart = new AmCharts.AmPieChart();
chart.dataProvider = chartData;
chart.titleField = "panne";
chart.valueField = "percpangrave";
chart.outlineColor = "#FFFFFF";
chart.outlineAlpha = 0.8;
chart.outlineThickness = 2;
legend = new AmCharts.AmLegend();
legend.position = "bottom";
legend.align = "center";
legend.markerType = "square";
legend.valueText = "";
chart.addLegend(legend);
chart.write("chartdiv1");
Vielen Dank für Ihre Antwort, aber wenn ich versuche, 'Zeilen anzuzeigen [i] .Cells [0] .innerHTML', ich hatte dieses Ergebnis ' Panne grave', ich will nur den Wert, in diesem Fall 'Panne grave' – marwa
nur ich ersetzt' innerHtml 'nach' textContent' und es funktioniert – marwa