2016-04-15 64 views
0

我想從我的負載,但是在按鍵數據庫中獲取數據單擊時,我想在同一個表重新插入數據我不知道如何將它無法自舉表

這裏再添加數據是我的HTML代碼

<table id="example" class="display" onload="callData()"></table> 
<button type="button" id="idTestTraffic" class="btn btn-primary">Get Test Traffic</button> 

我的JavaScript代碼

function setValue(data) { 
    var dataSet = []; 
    if (data.response.Status == 1) { 
     for (i = 0; i < data.response.Result.length; i++) { 

      dataSet.push([]) 
     } 
     for (i = 0; i < data.response.Result.length; i++) { 
      dataSet[i].push(i + 1); 
      dataSet[i].push(data.response.Result[i].testName); 
      dataSet[i].push(data.response.Result[i].view); 
      dataSet[i].push(data.response.Result[i].start); 
      dataSet[i].push(data.response.Result[i].finish); 
     } 

    } else 
     showMessage("green", data.response.Description, ""); 

    if (dataSet[0].length == 5) 
     return dataSet; 
} 

function callData() { 
    debugger; 
    $('#example').DataTable({ 
     data: dataIsSet(), 
     columns: [{ 
      title: "Sr No." 
     }, { 
      title: "Test Name" 
     }, { 
      title: "View" 
     }, { 
      title: "Start" 
     }, { 
      title: "Finish" 
     }], 

    }); 
} 

function dataIsSet() { 
    var dataSet = []; 
    syncAjaxCall("POST", "trafficanalysis/viewfinishanalysis", "", "application/json") 
     .done(
      function(data) { 
       dataSet = setValue(data); 
      }); 
    return dataSet; 
} 

在按鈕單擊我的代碼是

$("#idTestTraffic").click(function() { 
    syncAjaxCall("POST", "trafficanalysis/viewfinishanalysis", "", "application/json") 
     .done(function(data) { 
      // I want to set data in same table, but no clue how to set data in same table 
      dataSet = setValue(data); 
     }); 

}); 
+0

你可以自己做,但它會明確更容易尋找一個jQuery插件,爲你做這個或者添加一些其他的庫來幫助你。基本上你必須使用document.createElement()生成tr節點,然後爲每個值創建td節點並使用appendChild生成正確的視圖。 – Walfrat

+0

@Walfrat它看起來像OP使用數據表,所以他們只需要閱讀這裏的文檔:https://datatables.net/reference/api/rows.add()或在這裏:https://datatables.net/ reference/api/rows()。data() –

回答

0

選項1:

您可以創建一個變量/字符串表中的內容,只是其附加到example ID。

選項2:

創建使用document.createElement()創建的每個元素中的元素,然後將每個元件附加到一個錶行,然後最後追加到表example本身。

所以我會做什麼:

function setValue(data) { 
    var html = ""; 
    if (data.response.Status == 1) { 
     for (i = 0; i < data.response.Result.length; i++) { 
      html += '<tr>'; 
      html += '<td>' + (i + 1) + '</td>'; 
      html += '<td>' + data.response.Result[i].testName + '</td>'; 
      html += '<td>' + data.response.Result[i].view + '</td>'; 
      html += '<td>' + data.response.Result[i].start + '</td>'; 
      html += '<td>' + data.response.Result[i].finish + '</td>'; 
      html += '</tr>'; 
     } 
    } 
    return html; 
} 

然後,你必須dataSet = setValue(data);只是這樣做:

$('#example').append(setValue(data)); 
+0

遠遠高於代碼工作,但是搜索操作對錶中的數據集無效 –