具有2个变量的Ajax数据表+在列中呈现

时间:2018-05-18 18:16:26

标签: php ajax datatables

我有一个使用ajax加载数据的Datatable插件。我希望在基于2个条件的列中得到结果。下面的代码工作正常但只有一个条件。我没有起诉如何将status_token添加到等式中。我想添加status_token变量,就像状态正常一样。

我已尝试{ data: {'status': status, 'status_token': status_token}, render: function(status){$('#tableEvent').DataTable({ processing: true, serverSide: true, ajax: "{!! route('datatables.data') !!}", columns: [ { data: 'status_token', name: 'status_token' }, { data: 'status', //<-- how can I add another variable status_token? render: function(status){ //<-- same here status_token if(status == 'hello'){ return 'aa'; }else{ if(status_token == 'bye'){ return 'bb'; }else{ return 'cc'; } } } } ,但它无效。

{ data: {'status': 'status', 'status_token': 'status_token'},
    render: function(status, status_token){

根据Rohit.007建议我尝试了这段代码

$('#tableEvent').DataTable({
    processing: true,
    serverSide: true,
    ajax: "{!! route('datatables.data') !!}",
    columns: [

{ data: 'status_token', name: 'status_token' },

{ data: {'status': 'status', 'status_token': 'status_token'},
    render: function(status, status_token){
        if(status == 'hello'){
            return 'aa';

        }else{
            if(status_token == 'bye'){
                return 'bb';

            }else{
                return 'cc';
            } 
        } 
    }
}
],

responsive: true

});

但由于某种原因,它仍然不起作用,检查变量status_token我得到“显示”不知道那是什么以及为什么它与返回正确信息的第一列不同。

新的整个代码:

git config alias.change-commits '!'"f() { VAR=\$1; OLD=\$2; NEW=\$3; shift 3; git filter-branch --env-filter \"if [[ \\\"\$\`echo \$VAR\`\\\" = '\$OLD' ]]; then export \$VAR='\$NEW'; fi\" \$@; }; f "
git change-commits GIT_AUTHOR_NAME "<Old Name>" "<New Name>" -f
git change-commits GIT_AUTHOR_EMAIL <old@email.com> <new@email.com> -f
git change-commits GIT_COMMITTER_NAME "<Old Name>" "<New Name>" -f
git change-commits GIT_COMMITTER_EMAIL <old@email.com> <new@email.com> -f

3 个答案:

答案 0 :(得分:1)

我没有得到你,但是,你还在寻找类似的东西吗?

{
  data: {
    'status': false,
    'status_token': 'asdfasdfasdfasdfasdf'
  },
  render: function(status){
    if(status=='hello'){
      return'aa';
    }else{
      if(status_token=='bye'){
        return'bb';
      }else{
        return'cc';
      }
    }
  }
}

答案 1 :(得分:0)

render功能中添加其他参数。然后使用它获取status_token字段的值。

render: function(status, type, row){
        if(status == 'hello'){
            return 'aa';

        }else{
            if(row.status_token == 'bye'){
                return 'bb';

            }else{
                return 'cc';
            } 
        } 
    }

更新了整个代码:

$('#tableEvent').DataTable({
  processing: true,
  serverSide: true,
  ajax: "{!! route('datatables.data') !!}",
  columns: [{ data: 'status_token', name: "status_token" },
    { data: 'status': 'status', name: 'status',
      render: function(status, type, row) {
        if (status == 'hello') {
          return 'aa';

        } else {
          if (row.status_token == 'bye') {
            return 'bb';

          } else {
            return 'cc';
          }
        }
      }
    }
  ],
  responsive: true
});

https://datatables.net/reference/option/columns.render

答案 2 :(得分:0)

$('#tableEvent').DataTable({
  processing: true,
  serverSide: true,
  ajax: "{!! route('datatables.data') !!}",
  columns: [

    {
      data: 'status_token',
      name: 'status_token'
    },

    {
      data: {
        'status': 'status',
        'status_token': 'status_token'
      },
      render: function(data) {
        if (data.status == 'hello') {
          return 'aa';

        } else {
          if (data.status_token == 'bye') {
            return 'bb';

          } else {
            return 'cc';
          }
        }
      }
    }
  ],

  responsive: true

});

对我有用。