Добавление условия IF в столбцы значения на основе значения другого столбца в datatable - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу добавить условие, при котором, если столбец состояния «открыт», он вызовет «просмотр», а если статус «закрыт» или «отмена», то вызовет только столбец «view1».возможно ли это?

модель

 function json() {
        $this->datatables->select('id_lowongan_pekerjaan,judul_lowongan_pekerjaan,tanggal_berakhir,status,tgl_buat');
        $this->datatables->from('lowongan_pekerjaan');
        $this->datatables->add_column('view', '<a href="lowongan_pekerjaan/edit_lowongan_pekerjaan/$1"> <i class="fa fa-edit"></i></a>  
                                               <a onclick="return confirm(\'Apa anda yakin untuk hapus Data ini?\')" href="lowongan_pekerjaan/delete_lowongan_pekerjaan/$1"><i class="fa fa-trash"></i></a>', 'id_lowongan_pekerjaan');
        $this->datatables->add_column('view1', '', 'id_lowongan_pekerjaan');
        $this->datatables->where('status !="delete"');
        return $this->datatables->generate();
    }

вид

columns: [
     {
    "data": "id_lowongan_pekerjaan",
    "orderable": false
     },
     {"data": "id_lowongan_pekerjaan"},
     {"data": "judul_lowongan_pekerjaan"},
     {"data": "tanggal_berakhir"},
     {"data": "status"},
     {"data": "status", 
              "render": function(data) { 
              if (data === "Open") {
                  return {"data": "view"} 
                }
                else {
                  return {"data": "view1"} 
                }

              } 
     },
     //{"data": "view"}
    ],

1 Ответ

0 голосов
/ 11 сентября 2018

Ignited Datatables не имеет такой функциональности для каждого столбца.Вы можете использовать мой «форк», который я лично использую, который позволяет внешние обратные вызовы.Просто замените библиотеку моей: https://pastebin.com/Y2mH72SE

Контроллер:

$this->load->model('some_model');

Тогда

->add_column('view', array($this->some_model, 'callback_view'), 'id_lowongan_pekerjaan, status');

и echo json_encode($this->datatables->generate());

Модель:

class Some_model extends CI_Model {
    public function callback_view($id, $status) {
        return $this->load->view('some_view', array('id' => $id, 'status' => $status),  true);
    }
}

some_view.php

<?php if ($status == 'Open'): ?>
<a href="lowongan_pekerjaan/edit_lowongan_pekerjaan/<?php echo $id; ?>"> <i class="fa fa-edit"></i></a>  
<a onclick="return confirm(\'Apa anda yakin untuk hapus Data ini?\')" href="lowongan_pekerjaan/delete_lowongan_pekerjaan/<?php echo $id; ?>"><i class="fa fa-trash"></i></a>
<?php endif; ?>

Замечание по использованию

Вы все еще можете выполнять встроенные функции, такие как: $this->datatables->add_column('edit', '<a href="profiles/edit/$1">EDIT</a>', 'id');, однако в моей версии это должно быть в форме sprintf: $this->datatables->add_column('edit', '<a href="profiles/edit/%s">EDIT</a>', 'id');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...