javascript - 如何在 Codeigniter 中使用 ajax 为操作按钮添加新列以获取详细信息
问题描述
如何将列添加到操作按钮,例如 AJAX 中的详细信息按钮?这是我的代码: 控制器:
public function ajax_list()
{
$list = $this->th_ajaran->get_datatables();
$data = array();
$no = $_POST['start'];
$tools = $_POST['start'];
foreach ($list as $th_ajaran) {
$no++;
$row = array();
$row[] = $no;
$row[] = $th_ajaran->nama_kelas;
$row[] = $th_ajaran->jurusan;
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->th_ajaran->count_all(),
"recordsFiltered" => $this->th_ajaran->count_filtered(),
"data" => $data,
);
//output to json format
echo json_encode($output);
}
这是我的模特
<?php
class Th_Ajaran_kelas_model extends CI_Model {
var $table = 'th_ajaran';
var $column_order = array(null, 'nama_kelas','jurusan'); //set column field database for datatable orderable
var $column_search = array('nama_kelas','jurusan'); //set column field database for datatable searchable
var $order = array('th_ajaran' => 'asc'); // default order
private function _get_datatables_query()
{
//add custom filter here
if($this->input->post('th_ajaran'))
{
$this->db->where('th_ajaran', $this->input->post('th_ajaran'));
}
if($this->input->post('nama_kelas'))
{
$this->db->like('nama_kelas', $this->input->post('nama_kelas'));
}
if($this->input->post('jurusan'))
{
$this->db->like('jurusan', $this->input->post('jurusan'));
}
$this->db->from($this->table);
$this->db->join('th_ajaran_kelas', 'th_ajaran_kelas.id_th_ajaran = th_ajaran.id_th_ajaran');
$this->db->join('kelas', 'th_ajaran_kelas.id_kelas = kelas.id_kelas');
$i = 0;
foreach ($this->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->like($item, $_POST['search']['value']);
}
else
{
$this->db->or_like($item, $_POST['search']['value']);
}
if(count($this->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->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']);
$query = $this->db->get();
return $query->result();
}
Javascript
变量表; $(文档).ready(函数() { //数据表 表 = $('#table').DataTable({ "processing": true, //特征控制处理指标。 "serverSide": true, //特征控制DataTables的服务端处理方式。 "order": [], //初始无序。 // 从 Ajax 源加载表格内容的数据 “阿贾克斯”:{ “网址”:“”, “类型”:“发布”, “数据”:函数(数据){ data.th_ajaran = $('#th_ajaran').val(); } }, //设置列定义初始化属性。 “列定义”:[ { "targets": [ 0 ], //第一列/编号列 "orderable": false, //设置不可订购 }, ], }); $('#btn-filter').click(function(){ //按钮过滤事件点击 table.ajax.reload(); //只是重新加载表 }); $('#btn-reset').click(function(){ //按钮重置事件点击 $('#form-filter')[0].reset(); table.ajax.reload(); //只是重新加载表 }); });
解决方案
推荐阅读
- python - 我可以将所有数据从 sqlite 文件导入到 txt 文件 python
- javascript - 处理 es6 模块中的依赖关系,用于节点和浏览器
- c# - 等效于 emgucv csharp 中的 OpenCv c++ api Vec2f,norm, acos
- ruby-on-rails - 神秘类型错误:没有为类 OpenSSL::Digest 定义 _dump_data
- php - 从选择/输入框中获取输入。在 javascipt 中,然后在 php 中运行选择查询
- node.js - 如何将CSV但在字段中具有\r\n和“,”的字符串转换为json?
- reactjs - 页面上的简单路由。如何设置正确的显示?
- php - 如何在 PHP 中将 XML 转换为数组
- android - 如何使单选按钮的图像居中?
- excel - 将变量从用户窗体传递到模块