Ajax datatables с 2 переменными + визуализация в столбце - PullRequest
0 голосов
/ 18 мая 2018

У меня есть плагин Datatable, работающий с ajax для загрузки данных.Я хочу получить результат в столбце на основе 2 условий.Приведенный ниже код работает хорошо, но только с одним условием.Я не знаю, как добавить status_token в уравнение.Я хочу добавить переменную status_token так же, как статус status.

Я пробовал status, 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';
            } 
        } 
    }
}

В соответствии с предложением Rohit.007, я попробовал этот код

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

Но по какой-то причине он все еще не работает, проверяя переменную status_token, я получаю "display", понятия не имею, чтоэто и почему он отличается от первого столбца, который возвращает правильную информацию.

Новый полный код:

$('#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

});

Ответы [ 3 ]

0 голосов
/ 19 мая 2018

Добавьте еще один параметр в вашу функцию 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

0 голосов
/ 17 марта 2019

$('#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

});

У меня работает.

0 голосов
/ 18 мая 2018

Я не получил тебя, но все же, ты ищешь похожую вещь?

{
  data: {
    'status': false,
    'status_token': 'asdfasdfasdfasdfasdf'
  },
  render: function(status){
    if(status=='hello'){
      return'aa';
    }else{
      if(status_token=='bye'){
        return'bb';
      }else{
        return'cc';
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...