gpt4 book ai didi

mysql - JQuery 数据表 + Codeigniter(静态列)

转载 作者:行者123 更新时间:2023-11-30 01:37:35 25 4
gpt4 key购买 nike

我使用 Codeigniter 和 JQuery Datatables 来呈现来自 MYSQL 数据库的数据,并通过 AJAX/JSON 请求进行实时更新。我不是该代码的原始开发人员,这就是为什么我无法解决这个问题的原因。

我拥有的是一个包含 26 列的表,尚未填充所有列,但似乎所有列都直接来自数据库。这是 json_table 函数的代码片段:

$this->load->model('aircraft_model');
$this->load->model('nats_model');

$aColumns = array('FlightSts', 'TblOrder', 'Callsign', 'Destination', 'NAT', 'SELCAL', 'CldFL', 'CldMach', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'FlightID');
$sTable = 'naecs_aircraft';

$stable 似乎是 mysql 表,这是正确的,$acolumns 似乎是 mysql 表 naecs_aircraft 中的所有字段。这都是正确的,它甚至可以工作,但在倒数第二列中,就在 FlightID 之前,我想填充一个按钮。所以基本上在倒数第二列中我想要一个按钮。

怎么做?

问候,马切伊。

@编辑1

这是 Controller ajax.php 中的整个功能:

public function json_table(){
$this->access->requires(ACCESS_USER);
$this->load->model('aircraft_model');
$this->load->model('nats_model');

$aColumns = array('FlightSts', 'TblOrder', 'Callsign', 'Destination', 'NAT', 'SELCAL', 'CldFL', 'CldMach', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'FlightID');
$sTable = 'naecs_aircraft';

$iDisplayStart = $this->input->get_post('iDisplayStart', true);
$iDisplayLength = $this->input->get_post('iDisplayLength', true);
$iSortCol_0 = $this->input->get_post('iSortCol_0', true);
$iSortingCols = $this->input->get_post('iSortingCols', true);
$sSearch = $this->input->get_post('sSearch', true);
$sEcho = $this->input->get_post('sEcho', true);

if(isset($iSortCol_0))
{
for($i=0; $i<intval($iSortingCols); $i++)
{
$iSortCol = $this->input->get_post('iSortCol_'.$i, true);
$bSortable = $this->input->get_post('bSortable_'.intval($iSortCol), true);
$sSortDir = $this->input->get_post('sSortDir_'.$i, true);

if($bSortable == 'true')
{
if ($aColumns[$iSortCol] != ' '){
$this->aircraft_model->json_table_sort($aColumns, $iSortCol, $sSortDir);
}
}
}
}

if(isset($sSearch) && !empty($sSearch))
{
for($i=0; $i<count($aColumns); $i++)
{
if ($aColumns[$i] != ' '){
$bSearchable = $this->input->get_post('bSearchable_'.$i, true);
if(isset($bSearchable) && $bSearchable == 'true')
{
$this->aircraft_model->json_table_filter($aColumns, $i, $sSearch);
}
}
}
}

$rResult = $this->aircraft_model->json_table_select($aColumns, $sTable);
$iFilteredTotal = $this->aircraft_model->json_table_found($aColumns);
$iTotal = $this->aircraft_model->count_all($sTable);

$output = array(
'sEcho' => intval($sEcho),
'iTotalRecords' => $iTotal,
'iTotalDisplayRecords' => $iFilteredTotal,
'aaData' => array()
);

$headers = array('3active' => FALSE, '2cleared' => FALSE, '4closed' => FALSE, '1entered' => FALSE, '5disconnected' => FALSE);

foreach($rResult->result_array() as $aRow)
{
$row = array();

foreach($aColumns as $col)
{
@$row[] = $aRow[$col];
}

$databit = $row;
$databit['DT_RowId'] = $aRow['FlightID'];
$databit['DT_RowName'] = $aRow['Callsign'];
$output['aaData'][] = $databit;
$headers[$aRow['FlightSts']] = TRUE;
}

foreach ($headers as $key => $value){
if ($value == FALSE){
$output['aaData'][] = array($key, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
}
}

$output['aaData'][] = array('No More Aircraft', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');

echo json_encode($output);
}

tableinit.js:

function initTable(){
oTable = $('#main-table').dataTable({
"bProcessing": true,
"bServerSide": true,
"bSort": true,
"sServerMethod": "GET",
"sAjaxSource": "ajax/json_table",
"oLanguage": { "sProcessing": "<i class='icon-refresh icon-spin'></i>" },
"sDom": "<'pull-right'r><'row'<'span8'l>>tS",
"sScrollY": "400px",
"bPaginate": false,
"bScrollCollapse": true,
"aoColumnDefs": [
{ "bVisible": false, "aTargets": [ 1, 25 ] },
],
"aaSorting": [[ 1, "asc" ]],
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
$('td:eq(0)', nRow).attr("name", "callsign");
$('td:eq(1)', nRow).attr("name", "destination");
$('td:eq(2)', nRow).attr("name", "nat");
$('td:eq(3)', nRow).attr("name", "selcal");
$('td:eq(4)', nRow).attr("name", "lvl");
$('td:eq(5)', nRow).attr("name", "mach");
},
}).rowGrouping({ iGroupingColumnIndex: 0, sGroupingClass: 'nodrop', bSetGroupingClassOnTR: true });
}

最佳答案

您需要找到为表构建数据的位置,并在其中添加 html。您没有向我们提供足够的信息来完整回答,但您可以通过以下两种方法之一填充数据表:

1) 在正常的 php 输出中创建一个表,然后初始化

2)使用ajax源加载数据

对于您的问题来说,这两种方法本质上是相同的 - 找到创建表行数据的位置,并在那里修改它,使一列具有您想要的按钮 html

关于mysql - JQuery 数据表 + Codeigniter(静态列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com