Javascript datatable,然后在不重新加载页面的情况下编辑查询并再次单击enter或query,这是错误消息:DataTables警告:table id=test table-无法重新初始化datatable。有关此错误的更多信息,请参阅我曾尝试使用try.de

Javascript datatable,然后在不重新加载页面的情况下编辑查询并再次单击enter或query,这是错误消息:DataTables警告:table id=test table-无法重新初始化datatable。有关此错误的更多信息,请参阅我曾尝试使用try.de,javascript,jquery,html,ajax,datatables,Javascript,Jquery,Html,Ajax,Datatables,datatable,然后在不重新加载页面的情况下编辑查询并再次单击enter或query,这是错误消息:DataTables警告:table id=test table-无法重新初始化datatable。有关此错误的更多信息,请参阅我曾尝试使用try.destroy()部分解决此问题,但这似乎不起作用。啊,是的,这是一个Datatables问题,您发布的链接提供了一些解决此问题的方法。您可以选择一个更适合您的用例。 <div class="container-flu


datatable,然后在不重新加载页面的情况下编辑查询并再次单击enter或query,这是错误消息:DataTables警告:table id=test table-无法重新初始化datatable。有关此错误的更多信息,请参阅我曾尝试使用try.destroy()部分解决此问题,但这似乎不起作用。啊,是的,这是一个Datatables问题,您发布的链接提供了一些解决此问题的方法。您可以选择一个更适合您的用例。
            <div class="container-fluid">
                <div class="row">
                    <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                        <p>Please enter a SQL query below</p>
                        <p>Do not wrap your query in outer quotation marks.</p>
                        <p>For database structure information, please select "Learn About the Database" above.</p>
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-11 col-sm-11 col-md-11 col-lg-11">
                        <div class="active-cyan-4 mb-4">
                            <input id="sql-placeholder" class="form-control" type="text" placeholder="Write SQL here..." aria-label="Search">
                        </div>
                    </div>
                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">
                        <button id="query-button" type="button" class="btn btn-primary" onclick="DisplayQuery()">Query</button>
                    </div>
                </div>
            </div>

            <div class="container-fluid">
                <table id="test-table" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%">
                </table>
            </div>
var DisplayQuery;
(function($) {
  DisplayQuery = function() {
    $.ajax({
      method: 'POST',
      url: '*****',
      beforeSend: function(xhr) {
        xhr.setRequestHeader("access-control-allow-origin", "*")
            },
      data: JSON.stringify({
        "sqlStatement": $('#sql-placeholder').val()
      }),
      contentType: 'application/json',

      success: function(response) {

        // Get columns labels as list of dictionaries colLabels
        var colLabels = [];
        for (i = 0; i < response.sqlStatementResults[0].resultFrame.resultSetMetadata.columnMetadata.length; i++) {
          colLabels.push({
            title: response.sqlStatementResults[0].resultFrame.resultSetMetadata.columnMetadata[i].name
          }); 
        };

        // Get data rows as array of arrays dataRows3
        var dataRows = response.sqlStatementResults[0].resultFrame.records;
        var dataRows2 = [];
        var dataRows3 = [];

        for (i = 0; i < dataRows.length; i++) {
          dataRows2.push(dataRows[i].values);
        };

        dataRows2.forEach(arr => {
          rowVals = [];
          arr.forEach(e => {
            Object.entries(e).forEach(k => rowVals.push(k[1]))
          });
          dataRows3.push(rowVals);
        });

        try {
          $('#test-table').destroy();
        } finally {

        // Write DataTable from colLabels and dataRows3
        $('#test-table').DataTable({
          data: dataRows3,
          columns: colLabels,
          scrollX: true
        });
      }
    },

      error: function ajaxError(error) {
        console.error('Error in query processing; please try again.');
      }
    })
  }
}(jQuery));
$('#sql-placeholder').keypress(function(e) {
  if(e.which == 10 || e.which == 13) {
    DisplayQuery();
  }
})
document.getElementById('#sql-placeholder').onkeypress = function(e) {
  var keyCode = e.keyCode || e.which
  if (keyCode === '13') {
    // Enter pressed
    DisplayQuery()
  }
}