테이블 이름과 버튼이있는 <select >
이 있습니다. 버튼을 누를 때마다 선택한 테이블의 데이터베이스에서 데이터를 가져와야합니다.ajax 호출로 Jquery DataTable을 다시 만듭니다.
문제는 내가 위의 표보다 더 컬럼의 다른 번호가있는 테이블에서 데이터를 가져하려고하면, 그것은 내게 오류 준다이다 :
Uncaught TypeError: Cannot read property 'style' of undefined(…)
이있었습니다 이상의 13시간 내가하려고 해요을 이 일을하고 아직 아무것도하지 마라. 여기
내가 코드입니다 : 이미 존재하는 경우- 시도는 데이터 테이블을 파괴하는;
- 데이터베이스에서 열 이름을 가져 와서 datatable에 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 }); }); });
을});
FYI :이 기능은 작동하지만 가끔 Yahoo 쿼리 플러그인이 작동을 멈추거나 지연되는 경우가 있습니다. – thekodester