2017-09-08 6 views
1

この質問は何度か尋ねられていますが、私はそれぞれのソリューションを試してみましたが、それは私のためには機能しません。Datatables JQuery - JSONの値に基づいて行をフィルターする

var table = $('.dataTable').DataTable({ 
    "dom": 'tip', 
    "lengthMenu": [20], 
    "ajax": 'myUrl', 
    "sAjaxDataProp":"", 
    "columns" : [ 
     {"data" : "data.employee_num"}, 
     {"data" : "data.name"}, 
     {"data" : "data.user"}, 
     {"data" : 
      function(row){ 
       return row.data.food!== "1" ? "Yes" : "No"; 
      } 
     } 
    ] 
}); 

JSON構造はこのようなものです::

は、私は次のスクリプトを持っている

[ 
    { 
     "data": { 
      "employee_num": "X", 
      "name": "XXXX", 
      "user": "XXXX", 
      "status ": "X", 
     } 
    }, 
    { 
     "data": { 
      "employee_num": "Y", 
      "name": "YYYY", 
      "user": "YYYY", 
      "status ": "Y", 
     } 
    } 
] 

それは正常に動作しますが、私は特定の値に応じて、いくつかの行をフィルタする必要があります。たとえば、JSONにはdata.statusがあり、1または2になります。必要なのは、生のステータスが2で、すべての行を削除する必要がある場合です。私はfilter()rows.remove();を使ってみましたが、どちらもうまくいきませんでした。(あるいは、少なくとも私がそれを正しく行ったかどうかは分かりません)

どうすればいいですか?

+0

あなたはJSONデータを解析しているコードを追加してください。このコードはセットアップを示しています。 –

+0

私は病院で働くので、データや構造を表示することはできません。私はそれを変更する必要があったので、私は質問を投稿することができます:/ –

+0

データは理解できますが、あなたは何かを模擬することができます。データ構造を投稿できないのはちょっとばかげている。人々は手助けするための詳細を必要としません。必要に応じて、sudoコードを使ってより良いフローを説明するだけです。 –

答えて

0

[OK]を、ので、これは値(正しい方法)に応じて、行を削除する方法です:

var table = $('.dataTable').DataTable({ 
    "dom": 'tip', 
    "lengthMenu": [20], 
    "ajax": 'myUrl', 
    "sAjaxDataProp":"", 
    "columns" : [ 
     {"data" : "data.employee_num"}, 
     {"data" : "data.name"}, 
     {"data" : "data.user"}, 
     {"data" : 
      function(row){ 
       return row.data.food!== "1" ? "Yes" : "No"; 
      } 
     } 
    ], 
    // Answer 
    "createdRow": function(row, data) { 
     if (data["data"]["status"] === "2") { 
      table.row(row).remove().draw(); 
     } 
    } 
}); 
関連する問題