我有一个构建动态表的函数.我无法弄清楚如何将每列设置为数据库中的不同数据集.现在它只在每列中显示相同的值.
一点背景.我正在构建一个包含6列和大量行的表(所有这些都取决于数据库有多少数据).现在它只在所有6列中显示一列,所以它们重复.
如何将每列设置为6列的不同值?
function addTable() { var len = errorTableData.length; var myTableDiv = document.getElementById("myDynamicTable"); var table = document.createElement('TABLE'); table.border='1'; table.id = "dataTable"; var tableBody = document.createElement('TBODY'); table.appendChild(tableBody); for (var i=0; i这是ajax调用:
function triggerDataTable(index) { // Make AJAX requests for model systems $.ajax({ type: "POST", url: "qry/getAllData.php", async: true, dataType: "html", data: {ErrorOptions: control.settings.errorOptions}, success: function (result) { //console.warn(result); errorData = JSON.parse(result); //loop through data var len = errorData.length; for(i=0; ierrorData是数据库中的数据.正如你所看到的,我已经尝试添加2个变量,但是当我这样做时,它只是将它们放在同一个框中并在整个表中重复.
1> Trey..:看起来您每行打印完全相同的数据6次.你创建一个
td
元素,然后为它添加国家和州名,但你用于数据集索引的变量来自你的外部循环,所以在内部循环它永远不会改变,你实际上是抓住它每次都有价值:function addTable() { var len = errorTableData.length; var myTableDiv = document.getElementById("myDynamicTable"); var table = document.createElement('TABLE'); table.border='1'; table.id = "dataTable"; var tableBody = document.createElement('TBODY'); table.appendChild(tableBody); for (var i=0; i如果您可以使用从数据库获取的数据发布一些json,将会更容易提供帮助
根据您的帖子编辑并查看成功回调,我认为您有一个小问题,可以轻松修复:
首先,初始化一个空数组
errorTableData
success: function (result) { errorTableData = [];在你的if/else块中:
} else { //data here errorTableData = errorData[i]; }应该:
} else { //data here errorTableData[i] = errorData[i]; }然后在你的内循环中:
var countyName = errorTableData['CountyName'][i]; var stateName = errorTableData['StateName'][i];变为:
var countyName = errorTableData[i]['CountyName'][j]; var stateName = errorTableData[i]['StateName'][j];这只是一个猜测,因为我看不到实际的数据.