使用 bootstrap 模型的 Codeigniter + dataTable 自定义删除
Codeigniter + dataTable custom delete with bootstrap model
到目前为止我有什么:
$(文档).ready(函数() {
table = $('#users').DataTable( {
"processing": true,
"ajax": "<?php echo site_url('main/ajax_request'); ?>",
"deferRender": true,
"columns": [
{ "data": "id", "width": "6%", },
{ "data": "description" },
{ "data": "name" },
{ "data": "relation2" },
{
"data": null,
"width": "6%",
"className": "center",
"defaultContent": '<a href="<?php echo site_url("model/delete/"); ?>" class="editor_remove" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash"></i></a>'
},
],
"dom": 'Tlfrtip',
"aaSorting": [],
"iDisplayLength": 25,
"bStateSave": false,
// table tools
"tableTools": {
sSwfPath: "<?php echo base_url(); ?>assets/plugins/datatable/TableTools/swf/copy_csv_xls_pdf.swf",
aButtons: [
{ sExtends :'pdf',
oSelectorOpts: { filter: 'applied',
order: 'current',
},
sPdfOrientation: "landscape",
sPdfMessage: "Export Aplicatie",
bFooter: false,
},
{ sExtends :'xls',
oSelectorOpts: { filter: 'applied',
order: 'current',
},
bFooter: false,
},
{ sExtends :'print',
oSelectorOpts: { filter: 'applied',
order: 'current',
},
bFooter: false,
},
],
//"sRowSelect": "single",
},
} );
// Setup - add a text input to each footer cell
$('#users tfoot th').each( function () {
var title = $('#users thead th').eq( $(this).index() ).text();
$(this).html( '<input type="text" style="width:100%" class="form-control" />' );
} );
// Apply the search
table.columns().eq( 0 ).each( function ( colIdx ) {
$( 'input', table.column( colIdx ).footer() ).on( 'keyup change', function () {
table
.column( colIdx )
.search( this.value )
.draw();
} );
} );
} );
控制器:
// ajax request
public function ajax_request() {
$response = json_encode(array("data" => $this->Misc_model->getRecords() ));
echo $response;
}
型号:
public function getRecords() {
$data = array();
$this->db->select("records.id, records.description, relation_1.name, records.relation2")
->from('records')
->join('relation_1', "relation_1.id = records.relation", 'LEFT')
->where_not_in("deleted", '1');
$query = $this->db->get();
if($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
}
return $data;
}
HTML :
<table id="users" class="table table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Description</th>
<th>Single 1</th>
<th>Single 2</th>
<th>Delete</th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>Description</th>
<th>Single 1</th>
<th>Single 2</th>
<th>Delete</th>
</tr>
</tfoot>
</table>
现在我的问题是:
如何获取 ID 值以便在 :
中使用它
<?php echo site_url("model/delete/$id"); ?>
如果这是不可能的,是否有其他方法可以完成此操作?
您在 getRecords 模型中定义数据:
public function getRecords() {
$data = $this->db->select("records.id, records.description, relation_1.name, records.relation2")
->from('records')
->join('relation_1', "relation_1.id = records.relation", 'LEFT')
->where_not_in("deleted", '1')
->get()->result();
foreach($data as $d) {
$d->href = '<a href="' . site_url("model/delete/" . $d->id) . '" class="editor_remove" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash"></i></a>';
}
return $data;
}
并在您的 jquery 数据表中替换为:
{
"data": null,
"width": "6%",
"className": "center",
"defaultContent": '<a href="<?php echo site_url("model/delete/"); ?>" class="editor_remove" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash"></i></a>'
},
像这样:
{ "data": "href" },
到目前为止我有什么:
$(文档).ready(函数() {
table = $('#users').DataTable( {
"processing": true,
"ajax": "<?php echo site_url('main/ajax_request'); ?>",
"deferRender": true,
"columns": [
{ "data": "id", "width": "6%", },
{ "data": "description" },
{ "data": "name" },
{ "data": "relation2" },
{
"data": null,
"width": "6%",
"className": "center",
"defaultContent": '<a href="<?php echo site_url("model/delete/"); ?>" class="editor_remove" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash"></i></a>'
},
],
"dom": 'Tlfrtip',
"aaSorting": [],
"iDisplayLength": 25,
"bStateSave": false,
// table tools
"tableTools": {
sSwfPath: "<?php echo base_url(); ?>assets/plugins/datatable/TableTools/swf/copy_csv_xls_pdf.swf",
aButtons: [
{ sExtends :'pdf',
oSelectorOpts: { filter: 'applied',
order: 'current',
},
sPdfOrientation: "landscape",
sPdfMessage: "Export Aplicatie",
bFooter: false,
},
{ sExtends :'xls',
oSelectorOpts: { filter: 'applied',
order: 'current',
},
bFooter: false,
},
{ sExtends :'print',
oSelectorOpts: { filter: 'applied',
order: 'current',
},
bFooter: false,
},
],
//"sRowSelect": "single",
},
} );
// Setup - add a text input to each footer cell
$('#users tfoot th').each( function () {
var title = $('#users thead th').eq( $(this).index() ).text();
$(this).html( '<input type="text" style="width:100%" class="form-control" />' );
} );
// Apply the search
table.columns().eq( 0 ).each( function ( colIdx ) {
$( 'input', table.column( colIdx ).footer() ).on( 'keyup change', function () {
table
.column( colIdx )
.search( this.value )
.draw();
} );
} );
} );
控制器:
// ajax request
public function ajax_request() {
$response = json_encode(array("data" => $this->Misc_model->getRecords() ));
echo $response;
}
型号:
public function getRecords() {
$data = array();
$this->db->select("records.id, records.description, relation_1.name, records.relation2")
->from('records')
->join('relation_1', "relation_1.id = records.relation", 'LEFT')
->where_not_in("deleted", '1');
$query = $this->db->get();
if($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
}
return $data;
}
HTML :
<table id="users" class="table table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Description</th>
<th>Single 1</th>
<th>Single 2</th>
<th>Delete</th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>Description</th>
<th>Single 1</th>
<th>Single 2</th>
<th>Delete</th>
</tr>
</tfoot>
</table>
现在我的问题是:
如何获取 ID 值以便在 :
中使用它<?php echo site_url("model/delete/$id"); ?>
如果这是不可能的,是否有其他方法可以完成此操作?
您在 getRecords 模型中定义数据:
public function getRecords() {
$data = $this->db->select("records.id, records.description, relation_1.name, records.relation2")
->from('records')
->join('relation_1', "relation_1.id = records.relation", 'LEFT')
->where_not_in("deleted", '1')
->get()->result();
foreach($data as $d) {
$d->href = '<a href="' . site_url("model/delete/" . $d->id) . '" class="editor_remove" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash"></i></a>';
}
return $data;
}
并在您的 jquery 数据表中替换为:
{
"data": null,
"width": "6%",
"className": "center",
"defaultContent": '<a href="<?php echo site_url("model/delete/"); ?>" class="editor_remove" data-toggle="modal" data-target="#myModal"><i class="fa fa-trash"></i></a>'
},
像这样:
{ "data": "href" },