Hi Guys, i have a DataTable works fine with ServerSide Processing. But i wanna add in last Column some buttons like: Remove and Edit buttons. The button is like that: <a href='remove.php?id=X'>Remove</a>
How can i Do it ? Bellow i putted all pages that a used for this.
Javascript Page
srvprocess_datatable.php
Page where I wanna show the datatable
How can i Do it ? Bellow i putted all pages that a used for this.
Javascript Page
$('.listagem_dinamica').dataTable({ "bJQueryUI": true, "bProcessing": true, "bServerSide": true, "sAjaxSource": "../srvprocess_datatable.php", "aoColumns": [ {"sName": "cod_os"}, {"sName": "dthora_final"}, {"sName": "dthr_entrada"}, {"sName": "dthora_inicio"} ] });
srvprocess_datatable.php
<?php /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Easy set variables */ /* Array of database columns which should be read and sent back to DataTables. Use a space where * you want to insert a non-database field (for example a counter or static image) */ $columns = $_GET['sColumns']; $aColumns = explode(',', $columns); /* Indexed column (used for fast and accurate table cardinality) */ $sIndexColumn = "cod_os"; /* DB table to use */ $sTable = "os"; /* Database connection information */ $gaSql['user'] = "root"; $gaSql['password'] = "123456"; $gaSql['db'] = "sicoti_db"; $gaSql['server'] = "localhost"; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * If you just want to use the basic configuration for DataTables with PHP server-side, there is * no need to edit below this line */ /* * MySQL connection */ $gaSql['link'] = mysql_pconnect($gaSql['server'], $gaSql['user'], $gaSql['password']) or die('Could not open connection to server'); mysql_select_db($gaSql['db'], $gaSql['link']) or die('Could not select database ' . $gaSql['db']); /* * Paging */ $sLimit = ""; if (isset($_GET['iDisplayStart']) && $_GET['iDisplayLength'] != '-1') { $sLimit = "LIMIT " . intval($_GET['iDisplayStart']) . ", " . intval($_GET['iDisplayLength']); } /* * Ordering */ $sOrder = ""; if (isset($_GET['iSortCol_0'])) { $sOrder = "ORDER BY "; for ($i = 0; $i < intval($_GET['iSortingCols']); $i++) { if ($_GET['bSortable_' . intval($_GET['iSortCol_' . $i])] == "true") { $sOrder .= $aColumns[intval($_GET['iSortCol_' . $i])] . " " . ($_GET['sSortDir_' . $i] === 'asc' ? 'asc' : 'desc') . ", "; } } $sOrder = substr_replace($sOrder, "", -2); if ($sOrder == "ORDER BY") { $sOrder = ""; } } /* * Filtering * NOTE this does not match the built-in DataTables filtering which does it * word by word on any field. It's possible to do here, but concerned about efficiency * on very large tables, and MySQL's regex functionality is very limited */ $sWhere = ""; if (isset($_GET['sSearch']) && $_GET['sSearch'] != "") { $sWhere = "WHERE ("; for ($i = 0; $i < count($aColumns); $i++) { $sWhere .= $aColumns[$i] . " LIKE '%" . mysql_real_escape_string($_GET['sSearch']) . "%' OR "; } $sWhere = substr_replace($sWhere, "", -3); $sWhere .= ')'; } /* Individual column filtering */ for ($i = 0; $i < count($aColumns); $i++) { if (isset($_GET['bSearchable_' . $i]) && $_GET['bSearchable_' . $i] == "true" && $_GET['sSearch_' . $i] != '') { if ($sWhere == "") { $sWhere = "WHERE "; } else { $sWhere .= " AND "; } $sWhere .= $aColumns[$i] . " LIKE '%" . mysql_real_escape_string($_GET['sSearch_' . $i]) . "%' "; } } /* * SQL queries * Get data to display */ $sQuery = " SELECT SQL_CALC_FOUND_ROWS " . str_replace(" , ", " ", implode(", ", $aColumns)) . " FROM $sTable $sWhere $sOrder $sLimit "; $rResult = mysql_query($sQuery, $gaSql['link']) or die(mysql_error()); /* Data set length after filtering */ $sQuery = " SELECT FOUND_ROWS() "; $rResultFilterTotal = mysql_query($sQuery, $gaSql['link']) or die(mysql_error()); $aResultFilterTotal = mysql_fetch_array($rResultFilterTotal); $iFilteredTotal = $aResultFilterTotal[0]; /* Total data set length */ $sQuery = " SELECT COUNT(" . $sIndexColumn . ") FROM $sTable "; $rResultTotal = mysql_query($sQuery, $gaSql['link']) or die(mysql_error()); $aResultTotal = mysql_fetch_array($rResultTotal); $iTotal = $aResultTotal[0]; /* * Output */ $output = array( "sEcho" => intval($_GET['sEcho']), "iTotalRecords" => $iTotal, "iTotalDisplayRecords" => $iFilteredTotal, "aaData" => array() ); while ($aRow = mysql_fetch_array($rResult)) { $row = array(); for ($i = 0; $i < count($aColumns); $i++) { if ($aColumns[$i] == "version") { /* Special output formatting for 'version' column */ $row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]]; } else if ($aColumns[$i] != ' ') { /* General output */ $row[] = $aRow[$aColumns[$i]]; } } $output['aaData'][] = $row; } echo json_encode($output); ?>
Page where I wanna show the datatable
<table class="listagem_dinamica"> <thead> <tr> <th>OS</th> <th>Fim</th> <th>Entrada</th> <th>Inicio</th> </tr> </thead> <tbody> </tbody> </table>