- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有自定义过滤器和数据表的 codeigniter 表单。我使用jquery、ajax来加载数据。我期望的是,例如,当我选择公司列表时,我只想要加载到数据表中的选定公司。但现在发生的情况是所有数据都加载到数据表中,就好像没有过滤器一样。请帮忙。
谢谢
这是我的 Controller
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Assetfilter extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('user');
$this->load->model('assetfiltermdl');
$this->load->model('worklistmdl');
$this->load->helper('url');
$this->load->helper('date');
$this->load->library('session');
$this->load->library('email');
$this->load->model('email_ctrl');
$this->datauser = $this->session->userdata('logged_id');
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
//Do your magic here
}
//update 20 oct 2016 list kary.
public function kary_reload()
{
$list = $this->assetfiltermdl->get_listkary();
$data = array();
$no = $_POST['start'];
foreach ($list as $listkary) {
$no++;
$row = array();
$row[] = trim($listkary->idnik) . " ";
$row[] = trim($listkary->kodenik). " ";
$row[] = rtrim($listkary->namakary). " ";
$row[] = rtrim($listkary->namaper). " ";
$row[] = trim($listkary->iddept). " ";
$row[] = trim($listkary->jabatan). " ";
$row[] = trim($listkary->flagstatus). " ";
$row[] = trim($listkary->flagstatus). " ";
/*$row[] = '<a href="<?php echo base_url(' . "'" . 'asset/karyawandetailform' . "'" .'); ?>/<?php echo $listkary[' . "'" . 'idnik' . "'" . '] ; ?>" class="btn btn-primary"> Detail</a>
<a href="<?php echo base_url(' . "'" . 'asset/karyawaneditform' . "'" . '); ?>/<?php echo $listkary[' . "'" . 'idnik' . "'" .'] ; ?>" class="btn btn-primary">Detail</a>
<a href="<?php echo base_url(' . "'" . 'asset/karyawandeleform' . "'" . '); ?>/<?php echo $listkary[' . "'" . 'idnik' . "'" .'] ; ?>" class="btn btn-primary" onClick="javascript:return confirm(' . "'" . 'Apakah Anda Sudah Yakin ?' . "'" . ')" >Del</a>'; */
$data[] = ($row);
}
$output = array (
"draw" => $_POST['draw'],
"recordsTotal" => $this->assetfiltermdl->count_all(),
"recordsFiltered" => $this->assetfiltermdl->count_filtered(),
"data" => $data,
);
//output to json format
$output = str_replace('\r'," ", $output );
echo json_encode($output);
}
}
这是我的模型
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Assetfiltermdl extends CI_Model {
var $kary_table = 'listkary';
var $kary_column_order = array(null, 'update_date'); //set column field database for datatable orderable
var $kary_column_search = array('idper','iddept','namakary','kodenik'); //set column field database for datatable searchable
var $kary_order = array('update_date' => 'desc'); // default order
public function __construct()
{
parent::__construct();
}
//update 20 oct 2016
public function get_listkary()
{
$this->_get_listkary_query();
echo $this->db->last_query();
if($_POST['length'] != -1)
$this->db->limit($_POST['length'], $_POST['start']);
$query = $this->db->get();
return $query->result();
}
private function _get_listkary_query()
{
//add custom filter here
if($this->input->post('idper'))
{
$this->db->where('idper', $this->input->post('idper'));
}
if($this->input->post('iddept'))
{
$this->db->where('iddept', $this->input->post('iddept'));
}
//if($this->input->post('idsubdept'))
//{
// $this->db->like('LastName', $this->input->post('LastName'));
//}
if($this->input->post('kodenik'))
{
$this->db->like('kodenik', $this->input->post('kodenik'));
}
if($this->input->post('namakry'))
{
$this->db->like('namakary', $this->input->post('namakry'));
}
$this->db->from($this->kary_table);
$i = 0;
foreach ($this->kary_column_search as $item) // loop column
{
if($_POST['search']['value']) // if datatable send POST for search
{
if($i===0) // first loop
{
$this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
$this->db->where($item, $_POST['search']['value']);
}
else
{
if($i===1) // second loop (iddept)
{
$this->db->where($item, $_POST['search']['value']);
}
else
{
$this->db->like($item, $_POST['search']['value']);
}
}
if(count($this->kary_column_search) - 1 == $i) //last loop
$this->db->group_end(); //close bracket
}
$i++;
}
if(isset($_POST['order'])) // here order processing
{
$this->db->order_by($this->kary_column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
}
else if(isset($this->kary_order))
{
$order = $this->kary_order;
$this->db->order_by(key($order), $order[key($order)]);
}
}
private function _get_listkary_count()
{
//add custom filter here
if($this->input->post('idper'))
{
$this->db->where('idper', $this->input->post('idper'));
}
if($this->input->post('iddept'))
{
$this->db->where('iddept', $this->input->post('iddept'));
}
//if($this->input->post('idsubdept'))
//{
// $this->db->like('LastName', $this->input->post('LastName'));
//}
if($this->input->post('kodenik'))
{
$this->db->like('kodenik', $this->input->post('kodenik'));
}
if($this->input->post('namakry'))
{
$this->db->like('namakary', $this->input->post('namakry'));
}
$this->db->from($this->kary_table);
$i = 0;
foreach ($this->kary_column_search as $item) // loop column
{
if($_POST['search']['value']) // if datatable send POST for search
{
if($i===0) // first loop
{
$this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
$this->db->where($item, $_POST['search']['value']);
}
else
{
if($i===1) // second loop (iddept)
{
$this->db->where($item, $_POST['search']['value']);
}
else
{
$this->db->like($item, $_POST['search']['value']);
}
}
if(count($this->kary_column_search) - 1 == $i) //last loop
$this->db->group_end(); //close bracket
}
$i++;
}
}
public function count_all()
{
$this->_get_listkary_count();
return $this->db->count_all_results();
}
function count_filtered()
{
$this->_get_listkary_count();
$query = $this->db->get();
return $query->num_rows();
}
}
/* End of file assetfiltermdl.php */
/* Location: ./application/models/assetfiltermdl.php */
这是我的观点
<div class="right_col" role="main">
<div class="">
<div class="page-title">
<div class="title_left">
<h1> Data Karyawan </h1>
<h2> Informasi Data Karyawan </h2>
<p>
<a href ="<?php echo base_url('asset/karyawantambahform'); ?>" class="btn btn-primary">Tambah Karyawan Baru</a>
</p>
</div>
</div>
<div class="clearfix"></div>
<div class = "row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Daftar Karyawan</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a href="#"><i class="fa fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
</li>
<li><a href="#"><i class="fa fa-close"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<form id="form-filter" class="form-horizontal">
<div class="item form-group">
<label for="idper" class="col-sm-2 control-label">Perusahaan</label>
<div class="col-sm-4">
<select class="select2_single form-control" tabindex="-1" id="idper" name="idper">
<option>Pilih Perusahaan</option>
<?php foreach ($perushlov as $key => $value) { ?>
<option value="<?php echo $value['idper']?>"><?php echo $value['namaper']?></option>}
<?php } ?>
</select>
</div>
</div>
<div class="item form-group" >
<label for="iddept" class="col-sm-2 control-label">Departemen :</label>
<div class="col-sm-4">
<select class="select2_single form-control" tabindex="-1" id="iddept" name="iddept">
<option >Pilih Departement</option>
<?php foreach ($deptlov as $key => $value) { ?>
<option value="<?php echo $value['iddept']?>"><?php echo $value['kodedept'] . ' - ' . $value['namadept'] . ' - ' . $value['namaper'] ?></option>}
<?php } ?>
</select>
</div>
</div>
<div class="item form-group">
<label for="kodenik" class="col-sm-2 control-label">Nama Karyawan</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="namakry">
</div>
</div>
<div class="item form-group">
<label for="kodenik" class="col-sm-2 control-label">Kode NIK</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="kodenik">
</div>
</div>
<div class="item form-group">
<label for="LastName" class="col-sm-2 control-label"></label>
<div class="col-sm-4">
<button type="button" id="btn-filter" class="btn btn-primary">Filter</button>
<button type="button" id="btn-reset" class="btn btn-default">Reset</button>
</div>
</div>
</form>
<!-- <table id="datatable-buttons" class="table table-striped table-bordered"> -->
<table id="master_karyawan" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%">
<thead>
<tr>
<th>Id</th>
<th>Kode Nik</th>
<th>Nama Karyawan</th>
<th>Perusahaan</th>
<th>Departemen</th>
<th>Jabatan</th>
<th>Aktif</th>
<th>Administrasi</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var table;
$(document).ready(function() {
//datatables
table = $('#master_karyawan').DataTable({
"processing": true, //Feature control the processing indicator.
"serverSide": true, //Feature control DataTables' server-side processing mode.
"order": [], //Initial no order.
// Load data for the table's content from an Ajax source
"ajax": {
"url": "<?php echo base_url('index.php/Assetfilter/kary_reload')?>",
"type": "POST",
"data": function ( data ) {
data.perush = $('#idper').val();
data.depart = $('#iddept').val();
data.namakry = $('#namakry').val();
data.kodenik = $('#kodenik').val();
}
},
//Set column definition initialisation properties.
"columnDefs": [
{
"targets": [ 0 ], //first column / numbering column
"orderable": false, //set not orderable
},
],
//$.fn.dataTable.ext.errMode = 'throw';
});
$('#btn-filter').click(function(){ //button filter event click
table.ajax.reload(null,false); //just reload table
});
$('#btn-reset').click(function(){ //button reset event click
$('#form-filter')[0].reset();
table.ajax.reload(null,false); //just reload table
});
});
</script>
最佳答案
也许可能会晚回答,但请参阅此链接希望可以解决您的问题
http://mbahcoding.com/tutorial/php/codeigniter/codeigniter-server-side-datatables-custom-filter.html
public function index()
{
$this->load->helper('url');
$this->load->helper('form');
$list = $this->assetfiltermdl->get_listkary();
$opt = array('' => 'All List Karyawan');
foreach ($karyawans as $karyawan) {
$opt[$karyawan] = $karyawan;
}
$data['form_karyawan'] = form_dropdown('',$opt,'','id="karyawan" class="form-control"');
$this->load->view('karyawan_view', $data);
}
我希望这可以解释你的代码
关于jquery - 动态自定义过滤器在 codeigniter 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40209851/
好的,所以我编辑了以下... 只需将以下内容放入我的 custom.css #rt-utility .rt-block {CODE HERE} 但是当我尝试改变... 与 #rt-sideslid
在表格 View 中,我有一个自定义单元格(在界面生成器中高度为 500)。在该单元格中,我有一个 Collection View ,我按 (10,10,10,10) 固定到边缘。但是在 tablev
对于我的无能,我很抱歉,但总的来说,我对 Cocoa、Swift 和面向对象编程还很陌生。我的主要来源是《Cocoa Programming for OS X》(第 5 版),以及 Apple 的充满
我正在使用 meta-tegra 为我的 NVIDIA Jetson Nano 构建自定义图像。我需要 PyTorch,但没有它的配方。我在设备上构建了 PyTorch,并将其打包到设备上的轮子中。现
在 jquery 中使用 $.POST 和 $.GET 时,有没有办法将自定义变量添加到 URL 并发送它们?我尝试了以下方法: $.ajax({type:"POST", url:"file.php?
Traefik 已经默认实现了很多中间件,可以满足大部分我们日常的需求,但是在实际工作中,用户仍然还是有自定义中间件的需求,为解决这个问题,官方推出了一个 Traefik Pilot[1] 的功
我想让我的 CustomTextInputLayout 将 Widget.MaterialComponents.TextInputLayout.OutlinedBox 作为默认样式,无需在 XML 中
我在 ~/.emacs 中有以下自定义函数: (defun xi-rgrep (term) (grep-compute-defaults) (interactive "sSearch Te
我有下表: 考虑到每个月的权重,我的目标是在 5 个月内分散 10,000 个单位。与 10,000 相邻的行是我最好的尝试(我在这上面花了几个小时)。黄色是我所追求的。 我试图用来计算的逻辑如下:计
我的表单中有一个字段,它是文件类型。当用户点击保存图标时,我想自然地将文件上传到服务器并将文件名保存在数据库中。我尝试通过回显文件名来测试它,但它似乎不起作用。另外,如何将文件名添加到数据库中?是在模
我有一个 python 脚本来发送电子邮件,它工作得很好,但问题是当我检查我的电子邮件收件箱时。 我希望该用户名是自定义用户名,而不是整个电子邮件地址。 最佳答案 发件人地址应该使用的格式是: You
我想减小 ggcorrplot 中标记的大小,并减少文本和绘图之间的空间。 library(ggcorrplot) data(mtcars) corr <- round(cor(mtcars), 1)
GTK+ noob 问题在这里: 是否可以自定义 GtkFileChooserButton 或 GtkFileChooserDialog 以删除“位置”部分(左侧)和顶部的“位置”输入框? 我实际上要
我正在尝试在主页上使用 ajax 在 magento 中使用 ajax 显示流行的产品列表,我可以为 5 或“N”个产品执行此操作,但我想要的是将分页工具栏与结果集一起添加. 这是我添加的以显示流行产
我正在尝试使用 PasswordResetForm 内置函数。 由于我想要自定义表单字段,因此我编写了自己的表单: class FpasswordForm(PasswordResetForm):
据我了解,新的 Angular 7 提供了拖放功能。我搜索了有关 DnD 的 Tree 组件,但没有找到与树相关的内容。 我在 Stackblitz 上找到的一个工作示例.对比drag'ndrop功能
我必须开发一个自定义选项卡控件并决定使用 WPF/XAML 创建它,因为我无论如何都打算学习它。完成后应该是这样的: 到目前为止,我取得了很好的进展,但还有两个问题: 只有第一个/最后一个标签项应该有
我要定制xtable用于导出到 LaTeX。我知道有些问题是关于 xtable在这里,但我找不到我要找的具体东西。 以下是我的表的外观示例: my.table <- data.frame(Specif
用ejs在这里显示日期 它给我结果 Tue Feb 02 2016 16:02:24 GMT+0530 (IST) 但是我需要表现为 19th January, 2016 如何在ejs中执行此操作?
我想问在 JavaFX 中使用自定义对象制作 ListView 的最佳方法,我想要一个每个项目如下所示的列表: 我搜了一下,发现大部分人都是用细胞工厂的方法来做的。有没有其他办法?例如使用客户 fxm
我是一名优秀的程序员,十分优秀!