Php Codeigniter和Datatable搜索筛选器列问题
你好,我有点小问题, 接下来,我使用codeigniter创建了一个datatable,接下来我尝试使用实现一个搜索列 我的看法是:Php Codeigniter和Datatable搜索筛选器列问题,php,datatables,Php,Datatables,你好,我有点小问题, 接下来,我使用codeigniter创建了一个datatable,接下来我尝试使用实现一个搜索列 我的看法是: <div id="page-wrapper"> <div class="card"> <div class="card-header corsi"> <h3 class="page-header"><i class="fas fa-graduation-cap"&
<div id="page-wrapper">
<div class="card">
<div class="card-header corsi">
<h3 class="page-header"><i class="fas fa-graduation-cap"></i> <?=$title?></h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-xl-12">
</div>
</div>
<div class="row">
<div class="col-lg-12">
<table class="table table-striped table-bordered table-hover" id="scadenze_data" style="width:100%">
<thead>
<tr>
<th width="7%">Cod. Corso</th>
<th width="9%">Nome</th>
<th width="10%">Cognome</th>
<th width="7%">Codice Fiscale</th>
<th width="7%">Azienda</th>
<th width="1%">Edizione</th>
<th width="1%">
<select name="profilo" id="profilo" class="form-control">
<option value="">Profilo Search</option>
<?php
foreach($profili as $prof) {
echo '<option value="'.$prof->CODICE.'">'.$prof->CODICE.'</option>';
}
?>
</select>
</th>
<th width="9%">Periodo dal</th>
<th width="9%">Periodo al</th>
<th width="9%">N. Attestato</th>
<th width="9%">Data attestato</th>
<th width="9%">Scadenza</th>
<th width="9%">Attestati</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
<div class="card-footer">
<div class="container-fluid">
<div class="row">
<div class="col-md-6">
<input class="btn btn-secondary" src="" value="<- Torna indietro">
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" language="javascript" >
$(document).ready(function(){
load_data();
function load_data(is_profilo) {
var dataTable = $('#scadenze_data').DataTable({
"searchable": true,
"Paginate": true,
"processing":true,
"serverSide":true,
"order":[],
"ajax":{
url:"<?php echo base_url().'corsi/fetch_scadenze'; ?>",
type:"POST",
data:{is_profilo:is_profilo}
},
"columnDefs":[
{
"targets":[12],
"orderable":false,
},
{
"targets":[6],
"orderable":false,
},
],
"deferRender": true,
"lengthMenu":[[10,25,50,100,-1],[10,25,50,100,"All"]],
"pageLength":10,
"pagingType": "full_numbers",
});
}
$(document).on('change', '#profilo', function(){
var profilo = $(this).val();
$('#scadenze_data').DataTable().destroy();
if(profilo != '') {
load_data(profilo);
} else {
load_data();
}
});
});
</script>
鳕鱼。科索
诺姆
同源的
鳕鱼鱼鳞
阿齐恩达
埃迪锡安
Profilo搜索
周期性
周期铝
证明
数据证明
斯加登扎
证明
$(文档).ready(函数(){
加载_数据();
功能加载\数据(is\ U profilo){
var dataTable=$('scadenze_data')。dataTable({
“可搜索”:正确,
“Paginate”:正确,
“处理”:对,
“服务器端”:正确,
“订单”:[],
“ajax”:{
url:“”,
类型:“POST”,
数据:{is_profilo:is_profilo}
},
“columnDefs”:[
{
“目标”:[12],
“可订购”:错误,
},
{
“目标”:[6],
“可订购”:错误,
},
],
“延迟渲染”:正确,
“长度菜单”:[[10,25,50100,-1],[10,25,50100,“全部”],
“页面长度”:10,
“pagingType”:“完整编号”,
});
}
$(文档).on('change','profilo',function(){
var profilo=$(this.val();
$('scadenze_data').DataTable().destroy();
如果(profilo!=''){
加载数据(profilo);
}否则{
加载_数据();
}
});
});
我的控制器:
function fetch_scadenze(){
$this->load->helper('form');
$this->load->model("scadenze_model");
$fetch_data = $this->scadenze_model->make_datatables();
$data = array();
foreach($fetch_data as $row) {
$dal = date("d/m/Y", strtotime($row->PERIODO_DAL));
$al = date("d/m/Y", strtotime($row->PERIODO_AL));
$att = date("d/m/Y", strtotime($row->DATA_ATTESTATO));
$scadenza = date("d/m/Y", strtotime($row->DATA_SCADENZA));
$sub_array = array();
$sub_array[] = $row->CORSOCODICE;
$sub_array[] = $row->NOME;
$sub_array[] = $row->COGNOME;
$sub_array[] = $row->CF;
$sub_array[] = $row->DENOMIN_RAG_SOC;
$sub_array[] = $row->EDIZIONE;
$sub_array[] = $row->CODICE;
$sub_array[] = $dal;
$sub_array[] = $al;
$sub_array[] = $row->N_ATTESTATO_PROGRESSIVO;
$sub_array[] = $att;
$sub_array[] = $scadenza;
$sub_array[] = "<div class='btn-group' role='group' aria-label='Button group with nested dropdown'>...</div>";
$data[] = $sub_array;
}
$output = array(
"draw" => intval($_POST["draw"]),
"recordsTotal" => $this->scadenze_model->get_all_data(),
"recordsFiltered" => $this->scadenze_model->get_filtered_data(),
"data" => $data
);
echo json_encode($output);
}
函数fetch_scadenze(){
$this->load->helper('form');
$this->load->model(“scadenze_model”);
$fetch_data=$this->scadenze_model->make_datatables();
$data=array();
foreach($fetch_data as$row){
$dal=日期(“d/m/Y”,标准时间($row->PERIODO_dal));
$al=日期(“日/月/年”,标准时间($row->PERIODO_al));
$att=date(“d/m/Y”,strotime($row->DATA_-atto));
$scadenza=日期(“d/m/Y”,标准时间($row->DATA_scadenza));
$sub_array=array();
$sub_array[]=$row->CORSOCODICE;
$sub_数组[]=$row->NOME;
$sub_array[]=$row->COGNOME;
$sub_array[]=$row->CF;
$sub_array[]=$row->DENOMIN_RAG_SOC;
$sub_array[]=$row->EDIZIONE;
$sub_数组[]=$row->CODICE;
$sub_数组[]=$dal;
$sub_数组[]=$al;
$sub_array[]=$row->N_certivato\u PROGRESSIVO;
$sub_数组[]=$att;
$sub_array[]=$scadenza;
$sub_数组[]=“…”;
$data[]=$sub_数组;
}
$output=数组(
“draw”=>intval($\u POST[“draw”]),
“recordsTotal”=>this->scadenze_model->get_all_data(),
“recordsFiltered”=>this->scadenze\u model->get\u filtered\u data(),
“数据”=>$data
);
echo json_编码($output);
}
我的情态:
if (!defined('BASEPATH')) {exit('No direct script access allowed');}
class Scadenze_model extends CI_Model
{
var $table = "corso co";
var $select_column = array("cu._ID","ut.NOME","ut.COGNOME","ut.CF","az.DENOMIN_RAG_SOC","co.EDIZIONE","pr.CODICE","co.CORSOCODICE","co.PERIODO_DAL","co.PERIODO_AL","cu.N_ATTESTATO_PROGRESSIVO","co.DATA_ATTESTATO","co.DATA_SCADENZA","cu.FILE");
var $order_column = array("co.CORSOCODICE","ut.NOME","ut.COGNOME","ut.CF","az.DENOMIN_RAG_SOC","co.EDIZIONE","pr.CODICE","co.PERIODO_DAL","co.PERIODO_AL","cu.N_ATTESTATO_PROGRESSIVO","co.DATA_ATTESTATO","co.DATA_SCADENZA", null);
function make_query()
{
$this->db->select($this->select_column);
$this->db
->from($this->table)
->join("corsi_utenti cu", "co._ID = cu.ID_CORSO", "left")
->join("azienda az", "cu.ID_AZIENDA = az._ID", "left")
->join("utente ut", "cu.ID_UTENTE = ut._ID", "left")
->join("profilo pr", "co.ID_PROFILO = pr._ID", "left");
if(isset($_POST["is_profilo"]))
{
//echo "<script type='text/javascript'>console.log('prova');</script>";
$this->db->or_like("pr.CODICE", $_POST["is_profilo"]);
//$this->db->or_like("pr.CODICE", $_POST["is_profilo"]["value"]);
//$query .= "product.category = '".$_POST["is_category"]."' AND ";
}
if(isset($_POST["search"]["value"]))
{ //echo "<script>alert('There are no fields to generate a report');</script>";
$this->db->like("co.CORSOCODICE", $_POST["search"]["value"]);
$this->db->or_like("ut.NOME", $_POST["search"]["value"]);
$this->db->or_like("ut.COGNOME", $_POST["search"]["value"]);
$this->db->or_like("ut.CF", $_POST["search"]["value"]);
$this->db->or_like("az.DENOMIN_RAG_SOC", $_POST["search"]["value"]);
$this->db->or_like("co.EDIZIONE", $_POST["search"]["value"]);
$this->db->or_like("pr.CODICE", $_POST["search"]["value"]);
$this->db->or_like("co.PERIODO_DAL", $_POST["search"]["value"]);
$this->db->or_like("co.PERIODO_AL", $_POST["search"]["value"]);
$this->db->or_like("cu.N_ATTESTATO_PROGRESSIVO", $_POST["search"]["value"]);
$this->db->or_like("co.DATA_ATTESTATO", $_POST["search"]["value"]);
$this->db->or_like("co.DATA_SCADENZA", $_POST["search"]["value"]);
}
if(isset($_POST["order"]))
{
$this->db->order_by($this->order_column[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
} else {
$this->db->order_by('co.DATA_ATTESTATO', 'DESC');
}
}
function make_datatables()
{
$this->make_query();
// $this->db->limit(10,1);
if($_POST['length'] != -1)
{
$this->db->limit($_POST['length'], $_POST['start']);
}
$query = $this->db->get();
return $query->result();
}
function get_filtered_data(){
$this->make_query();
$query = $this->db->get();
return $query->num_rows();
}
function get_all_data()
{
$this->db->select("*");
$this->db->from($this->table);
return $this->db->count_all_results();
}
function insert_log($activity, $module){
$id = $this->session->userdata('user_id');
$data = array(
'fk_user_id' => $id,
'activity' => $activity,
'module' => $module,
'created_at' => date('Y\-m\-d\ H:i:s A')
);
$this->db->insert('activity_log', $data);
}
//FACCIO UPDATE DELLA TABELLA corsi_utenti in FILE
function set_url_attestato($id, $file){
$this->db->set('FILE', $file);
$this->db->where('_ID', $id);
$this->db->update('corsi_utenti');
}
}
if(!defined('BASEPATH'){exit('No direct script access allowed');}
类Scadenze_模型扩展了CI_模型
{
var$table=“科索公司”;
var$select_column=array(“cu._ID”、“ut.NOME”、“ut.COGNOME”、“ut.CF”、“az.DENOMIN_RAG_SOC”、“co.EDIZIONE”、“pr.CODICE”、“co.CORSOCODICE”、“co.PERIODO_DAL”、“co.PERIODO_AL”、“cu.N_detectato_PROGRESSIVO”、“co.DATA_detectato”、“co.DATA_SCADENZA”、“cu.FILE”);
var$order\u column=array(“co.CORSOCODICE”、“ut.NOME”、“ut.COGNOME”、“ut.CF”、“az.DENOMIN\u RAG\u SOC”、“co.EDIZIONE”、“pr.CODICE”、“co.PERIODO\u DAL”、“co.PERIODO\u AL”、“cu.N\u authenticato\u PROGRESSIVO”、“co.DATA\u authenticato”、“co.DATA\u SCADENZA”、null);
函数make_query()
{
$this->db->select($this->select\u列);
$this->db
->从($this->table)
->加入(“corsi_utenti cu”,“co.\u ID=cu.ID\u CORSO”,“左”)
->加入(“azienda-az”,“cu.ID\u azienda=az.\u-ID”,“左”)
->加入(“utente ut”,“cu.ID\U utente=ut.\U ID”,“左”)
->加入(“profilo-pr”,“co.ID_-profilo=pr._-ID”,“left”);
如果(isset($_POST[“is_profilo”]))
{
//echo“console.log('prova');”;
$this->db->or_like(“pr.CODICE”,$_POST[“is_profilo”]);
//$this->db->or_like(“pr.CODICE”、$u POST[“is_profilo”][“value”]);
//$query.=“product.category=”。$\u POST[“是”]。“”和“;
}
如果(isset($_POST[“search”][“value”]))
{//echo“警报('没有可生成报告的字段');”;
$this->db->like(“co.CORSOCODICE”,$_POST[“search”][“value”]);
$this->db->或类似的($ut.NOME),$u POST[“search”][“value”]);
$this->db->or_like(“ut.COGNOME”,$_POST[“search”][“value”]);
$this->db->or_like(“ut.CF”,$_POST[“search”][“value”]);
$this->db->或类似(“a
$('#profilo').on('change', function(){
var profilo = $(this).val();
$('#scadenze_data').DataTable().destroy();
if(profilo != '') {
load_data(profilo);
} else {
load_data();
}
});
<script type="text/javascript" language="javascript" >
$(document).ready(function(){
load_data();
function load_data(is_profilo) {
var dataTable = $('#scadenze_data').DataTable({
"searchable": true,
"Paginate": true,
"processing":true,
//"serverSide":true, <--serverside block all
"order":[],
"ajax":{
url:"<?php echo base_url().'corsi/fetch_scadenze'; ?>",
type:"POST",
data:{is_profilo:is_profilo}
},
"columnDefs":[
{
"targets":[12],
"orderable":false,
},
{
"targets":[6],
"orderable":false,
},
],
"deferRender": true,
"lengthMenu":[[10,25,50,100,-1],[10,25,50,100,"All"]],
"pageLength":10,
"pagingType": "full_numbers",
});
}
$(document).on('change', '#profilo', function(){
var profilo = $(this).val();
$('#scadenze_data').DataTable().destroy();
if(profilo != '') {
load_data(profilo);
} else {
load_data();
}
});
});