1
我有一個表名和一個按鈕<select >
。每次我按下按鈕,我都必須從選定表格的數據庫中提取數據。重新創建數據表jQuery的用Ajax調用
的問題是,如果我嘗試從不同數量比以前的表列的錶帶上的數據,它給了我一個錯誤:
Uncaught TypeError: Cannot read property 'style' of undefined(…)
它已經超過13小時我試着做這項工作,但還沒有。
下面是代碼,我:
- 試圖摧毀的數據表中,如果有一個已;
- 從數據庫中獲得列名對數據表dinamically創建它;
- 從數據庫中獲取所選表的數據;
用數據填充+列數據表:
$('body').on('click', '#btnTeste', function(e){ if ($.fn.DataTable.isDataTable('#myTable')) { $('#myTable').DataTable().destroy(); } e.preventDefault(); var tabela = $('select[name=selectTable]').val(); // Busca nome das columnas da tabela selecionada var columns = []; $.ajax({ type: 'GET', url: 'getcolumnName.php', dataType: 'json', data: {table: tabela}, success:function(data){ for(i=0; i < data.length; i++) { /*if(tabela == 'localidade') { columns.push({ "mDataProp": "Field"+ (i+1), sTitle: data[i].replace("dsc_","").replace("cod_munic", "cidade") .replace("id_bairro", "bairro").replace("id_endereco", "endereco"), sType : "string"}); } else */ columns.push({ "mDataProp": "Field"+ (i+1), sTitle: data[i].replace("dsc_",""), sType : "string"}); } } }) .done(function(msg){ var dados; $.ajax({ type: 'GET', url: 'listaLocalidade.php', dataType: 'json', data: {table: tabela}, success:function(data){ dados = data; } }) .done(function(msg){ var nFields = Object.keys(dados[0]).length; var nElements = dados.length; //Prepara array dos dados var resultado = []; for(i=0; i< nElements; i++){ resultado[i] = {}; var prop = "Field"; for(j=0; j < nFields; j++) { resultado[i][prop + (j+1)] = dados[i][ columns[j]['sTitle'] ]; } } console.log(columns); console.log(resultado); $('#myTable').DataTable({ "aoColumns" : columns, "aaData": resultado }); }); });
});
供參考:這工作,但有時雅虎查詢插件下降或延遲它。 – thekodester