Я хочу выполнить индивидуальный поиск с использованием таблиц данных на стороне сервера, все функции такие же, как в примере на datatables.net, но когда я ищу в поле фильтра столбца, он просто обрабатывается и не меняется, кто-нибудь может мне помочь? спасибо для удобства чтения я напишу свой код ниже: Контроллерpublic function pm()
{
$data['title'] = "PM";
$username = $this->session->userdata('username');
$data['user'] = $this->db->select('*')->from('mst_user')->join('mst_pegawai', 'mst_pegawai.username=mst_user.username', 'left')->where('mst_user.username', $username)->get()->row_array();
$data['dataPM'] = $this->db->get('mfaktur');
if ($this->form_validation->run() == false) {
$this->load->view('templates/header', $data);
$this->load->view('templates/navbar', $data);
$this->load->view('templates/sidebar', $data);
$this->load->view('master/pm', $data);
$this->load->view('templates/footer');
}
}
// Get data perusahaan
public function get_data_pm()
{
$list = $this->pm->get_datatables();
$data = array();
$no = $_POST['start'];
Модель
defined('BASEPATH') or exit('No direct script access allowed');
// Export PM
class Pmmaster extends CI_Model
{
public $table_user = 'mfaktur'; //nama tabel dari database id
public $column_order = array(null, 'kdJenisTransaksi', 'fgPengganti', 'nomorFaktur', 'masaPajak', 'tahunPajak', 'tanggalFaktur', 'npwpPenjual', 'alamatPenjual', 'namaPenjual', 'npwpLawanTransaksi', 'namaLawanTransaksi', 'alamatLawanTransaksi', 'referensi', 'jumlahDpp', 'jumlahPpn', 'jumlahPpnbm', 'isWapu', 'isSupplierReg', 'statusApproval', 'statusFaktur'); //field yang ada di table user
public $column_search = array('kdJenisTransaksi', 'fgPengganti', 'nomorFaktur', 'masaPajak', 'tahunPajak', 'npwpPenjual', 'alamatPenjual', 'namaPenjual', 'npwpLawanTransaksi', 'namaLawanTransaksi', 'alamatLawanTransaksi', 'referensi', 'isWapu', 'isSupplierReg', 'statusApproval', 'statusFaktur'); //field yang diizin untuk pencarian
public $order = array('id' => 'asc'); // default order
public function __construct()
{
parent::__construct();
$this->load->database();
}
private function _get_datatables_query()
{
$this->db->from($this->table_user);
$where = "branch_id = CASE WHEN '" . $this->session->userdata('branch_id') . "' = '11' THEN branch_id ELSE '" . $this->session->userdata('branch_id') . "' END";
$this->db->where($where);
$i = 0;
// looping awal
foreach ($this->column_search as $item) {
// jika datatable mengirimkan pencarian dengan metode POST
if ($_POST['search']['value']) {
// looping awal
if ($i === 0) {
$this->db->group_start();
$this->db->like($item, $_POST['search']['value']);
} else {
$this->db->or_like($item, $_POST['search']['value']);
}
if (isset($_POST['order'])) {
$this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
} else if (isset($this->order)) {
$order = $this->order;
$this->db->order_by(key($order), $order[key($order)]);
}
}
public function get_datatables()
{
$this->_get_datatables_query();
if ($_POST['length'] != -1) {
$this->db->limit($_POST['length'], $_POST['start']);
}
Я хочу выполнить индивидуальный поиск с использованием таблиц данных на стороне сервера, все функции такие же, как в примере на datatables.net, но когда я ищу в поле фильтра столбца, он просто обрабатывается и не меняется, кто-нибудь может мне помочь? спасибо :)[b]для удобства чтения я напишу свой код ниже: [b]Контроллер[/b]public function pm() { $data['title'] = "PM"; $username = $this->session->userdata('username'); $data['user'] = $this->db->select('*')->from('mst_user')->join('mst_pegawai', 'mst_pegawai.username=mst_user.username', 'left')->where('mst_user.username', $username)->get()->row_array();
$data['dataPM'] = $this->db->get('mfaktur'); if ($this->form_validation->run() == false) { $this->load->view('templates/header', $data); $this->load->view('templates/navbar', $data); $this->load->view('templates/sidebar', $data); $this->load->view('master/pm', $data); $this->load->view('templates/footer'); } } // Get data perusahaan public function get_data_pm() { $list = $this->pm->get_datatables(); $data = array(); $no = $_POST['start'];
[b]Модель[/b] defined('BASEPATH') or exit('No direct script access allowed');
// Export PM class Pmmaster extends CI_Model { public $table_user = 'mfaktur'; //nama tabel dari database id
public $column_order = array(null, 'kdJenisTransaksi', 'fgPengganti', 'nomorFaktur', 'masaPajak', 'tahunPajak', 'tanggalFaktur', 'npwpPenjual', 'alamatPenjual', 'namaPenjual', 'npwpLawanTransaksi', 'namaLawanTransaksi', 'alamatLawanTransaksi', 'referensi', 'jumlahDpp', 'jumlahPpn', 'jumlahPpnbm', 'isWapu', 'isSupplierReg', 'statusApproval', 'statusFaktur'); //field yang ada di table user
public $column_search = array('kdJenisTransaksi', 'fgPengganti', 'nomorFaktur', 'masaPajak', 'tahunPajak', 'npwpPenjual', 'alamatPenjual', 'namaPenjual', 'npwpLawanTransaksi', 'namaLawanTransaksi', 'alamatLawanTransaksi', 'referensi', 'isWapu', 'isSupplierReg', 'statusApproval', 'statusFaktur'); //field yang diizin untuk pencarian
public $order = array('id' => 'asc'); // default order
public function __construct() { parent::__construct(); $this->load->database(); }
private function _get_datatables_query() {
$this->db->from($this->table_user); $where = "branch_id = CASE WHEN '" . $this->session->userdata('branch_id') . "' = '11' THEN branch_id ELSE '" . $this->session->userdata('branch_id') . "' END"; $this->db->where($where);
$i = 0; // looping awal foreach ($this->column_search as $item) { // jika datatable mengirimkan pencarian dengan metode POST if ($_POST['search']['value']) { // looping awal if ($i === 0) { $this->db->group_start(); $this->db->like($item, $_POST['search']['value']); } else { $this->db->or_like($item, $_POST['search']['value']); }
if (isset($_POST['order'])) { $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']); } else if (isset($this->order)) { $order = $this->order; $this->db->order_by(key($order), $order[key($order)]); } }
public function get_datatables() { $this->_get_datatables_query(); if ($_POST['length'] != -1) { $this->db->limit($_POST['length'], $_POST['start']); }