2017-04-18 11 views
1

server-side processing data tableを使用しました。私はカスタムラベル値を設定するつもり使用していますいくつかの他のデータに合格した、このデータテーブルAJAX応答でdatatable ajaxレスポンスデータを使用してカスタムラベル値を設定する

var table = $("#job-table").DataTable({ 
    "ajax": { 
     "url": "<?php echo url('/getJobs');?>", 
     "type": "POST", 
     "data": function (d) { 
      d.connection = connectionArray, 
      d.company = companyArray, 
      d.type = typeArray 
     } 
    }, 
    "processing": true, 
    "serverSide": true, 
    "columns": [ 
     { "data": "id" }, 
     { "data": "job_id" }, 
     { "data": "type" }, 
     { "data": "connection_id" }, 
     { "data": "company_id" }, 
     { "data": "message" }, 
     { "data": "total_completion_time" }, 
     { "data": "date" }, 
     { "data": "start_time" }, 
     { "data": "end_time" }, 
     { "data": "error_time" } 
    ], 
    "info":  false, 
    "searching": false, 
    "bLengthChange": false 
}); 

:ここ

は私のデータテーブルの構成です。

今、私はラベル値を設定するために同じajax呼び出しを使用しています。データテーブルの呼び出しとラベルの設定の呼び出しの2つの呼び出しがあります。私は同じAPIを呼び出しています。しかし、私はどのように2番目のajax呼び出しを避けることができるか知りたいですか? データテーブルajaxコール応答を使用してカスタムラベル値を設定する方法はありますか?

+0

「*別のデータ*」は少し曖昧です。 'dataSrc:function(json){$( 'label'); html(json.someAnotherData);}}; return json} 'おそらくあなたにヒントを与えることができます...? – davidkonrad

+0

いいえ、動作しません! :( 「データ」レベルの「avg_number_of_completion」のデータ型応答の1つのパラメータを返します。 のように - 列内のデータを使用しました。avg_number_of_completionを使用してラベルを設定したい – Progi1990

答えて

0

私は何か類似しています。私はそれを処理するためにdataFilterコールバックを使用しました。

ので、HTMLを与えられた:私のテーブル定義は、(dataFilter部分に注目してください)のように見えます

{ ValueOne: "some data", 
    ValueTwo: "Some more data", 
    data: [array of data for the table] } 

var table = $("#job-table").DataTable({ 
    "ajax": { 
     "url": "<?php echo url('/getJobs');?>", 
     "type": "POST", 
     "data": function (d) { 
      d.connection = connectionArray, 
      d.company = companyArray, 
      d.type = typeArray 
     }, 
     // I added this section. It is called before the success callback 
     // You will have to figure out your parsing at this point because 
     // each configuration is different so I just put how mine is. 

     dataFilter: function(response){ 
      var temp = JSON.parse(response); 
      $("#txtOne").val(temp.ValueOne); 
      $("#txtTwo").val(temp.ValueTwo); 


      return response; 

     } 
    }, 
    "processing": true, 
    "serverSide": true, 
    "columns": [ 
     { "data": "id" }, 
     { "data": "job_id" }, 
     { "data": "type" }, 
     { "data": "connection_id" }, 
     { "data": "company_id" }, 
     { "data": "message" }, 
     { "data": "total_completion_time" }, 
     { "data": "date" }, 
     { "data": "start_time" }, 
     { "data": "end_time" }, 
     { "data": "error_time" } 
    ], 
    "info": false, 
    "searching": false, 
    "bLengthChange": false 
}); 

<input id="txtOne"/> 
    <input id="txtTwo"/> 
    <table id="job-table" class="display"></table> 

サーバーサイドコードは次のようになりますJSONシリアライズ・オブジェクトを返します

関連する問題