DataTables warning: table id=emp-salary - Ajax error. For more information about this error, please see http://datatables.net/tn/7
<a href="http://localhost/payroll/ajax/?case=LoadingSalaries&draw=1&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=4&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=5&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=desc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1659005993833">
What I have tried:
<table id="admin-salary" class="table table-bordered table-stripe"><thead> <tr> <th>EMP CODE</th> <th>NAME</th> <th>SALARY MONTH</th> <th>EARNINGS</th> <th>DEDUCTIONS</th> <th>NET SALARY</th> <th>ACTIONS</th> </tr> </thead> </table>
<table id="emp-salary" class="table table-bordered table-stripe"><tbody></tbody><thead> <tr> <th>EMP CODE</th> <th>SALARY MONTH</th> <th>EARNINGS</th> <th>DEDUCTIONS</th> <th>NET SALARY</th> <th>ACTIONS</th> </tr> </thead> </table>
script
if ( $('#admin-salary').length > 0 ) {
var admin_sal_table = $('#admin-salary').DataTable({
"processing": true,
"serverSide": true,
"ajax": baseurl + "ajax/?case=LoadingSalaries",
"order": [0, 'desc'],
"columnDefs": [{
"targets": 0,
"className": "dt-center"
}]
});
}
if ( $('#emp-salary').length > 0 ) {
var emp_sal_table = $('#emp-salary').DataTable({
"processing": true,
"serverSide": true,
"ajax": baseurl + "ajax/?case=LoadingSalaries",
"order": [0, 'desc']
});
}
source code
function LoadingSalaries() {
global $db;
$requestData = $_REQUEST;
if ( $_SESSION['Login_Type'] == 'admin' ) {
$columns = array(
0 => 'emp_code',
1 => 'first_name',
2 => 'last_name',
3 => 'pay_month',
4 => 'earning_total',
5 => 'deduction_total',
6 => 'net_salary'
);
$sql = "SELECT * FROM `" . DB_PREFIX . "salaries` GROUP BY `emp_code`, `pay_month`";
$query = mysqli_query($db, $sql);
$totalData = mysqli_num_rows($query);
$totalFiltered = $totalData;
$sql = "SELECT `emp`.`emp_code`, `emp`.`first_name`, `emp`.`last_name`, `salary`.*";
$sql .= " FROM `" . DB_PREFIX . "salaries` AS `salary`, `" . DB_PREFIX . "employees` AS `emp` WHERE `emp`.`emp_code` = `salary`.`emp_code`";
if ( !empty($requestData['search']['value']) ) {
$sql .= " AND (`salary`.`emp_code` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR CONCAT(TRIM(`emp`.`first_name`), ' ', TRIM(`emp`.`last_name`)) LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`pay_month` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`earning_total` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`deduction_total` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`net_salary` LIKE '" . $requestData['search']['value'] . "%')";
}
$sql .= " GROUP BY `salary`.`emp_code`, `salary`.`pay_month`";
$query = mysqli_query($db, $sql);
$totalFiltered = mysqli_num_rows($query);
$data = array();
$i = 1 + $requestData['start'];
while ( $row = mysqli_fetch_assoc($query) ) {
$nestedData = array();
$nestedData[] = $row['emp_code'];
$nestedData[] = '</a><a target="_blank" href="' . REG_URL . 'reports/' . $row[">' . $row["first_name"] . ' ' . $row["last_name"] . '</a>';
$nestedData[] = $row['pay_month'];
$nestedData[] = number_format($row['earning_total'], 2, '.', ',');
$nestedData[] = number_format($row['deduction_total'], 2, '.', ',');
$nestedData[] = number_format($row['net_salary'], 2, '.', ',');
$nestedData[] = ' ^__i class="fa fa-envelope">';
$data[] = $nestedData;
$i++;
}
} else {
$columns = array(
0 => 'pay_month',
1 => 'earning_total',
2 => 'deduction_total',
3 => 'net_salary'
);
$empData = GetDataByIDAndType($_SESSION['Admin_ID'], $_SESSION['Login_Type']);
$sql = "SELECT * FROM `" . DB_PREFIX . "salaries` GROUP BY `emp_code`, `pay_month` WHERE `emp_code` = '" . $empData['emp_code'] . "'";
$query = mysqli_query($db, $sql);
$totalData = mysqli_num_rows($query);
$totalFiltered = $totalData;
$sql = "SELECT `emp`.`emp_code`, `emp`.`first_name`, `emp`.`last_name`, `salary`.*";
$sql .= " FROM `" . DB_PREFIX . "salaries` AS `salary`, `" . DB_PREFIX . "employees` AS `emp` WHERE `emp`.`emp_code` = `salary`.`emp_code` AND `salary`.`emp_code` = '" . $empData['emp_code'] . "'";
if ( !empty($requestData['search']['value']) ) {
$sql .= " AND (`salary`.`emp_code` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`pay_month` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`earning_total` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`deduction_total` LIKE '" . $requestData['search']['value'] . "%'";
$sql .= " OR `salary`.`net_salary` LIKE '" . $requestData['search']['value'] . "%')";
}
$sql .= " GROUP BY `salary`.`emp_code`, `salary`.`pay_month`";
$query = mysqli_query($db, $sql);
$totalFiltered = mysqli_num_rows($query);
$data = array();
$i = 1 + $requestData['start'];
while ( $row = mysqli_fetch_assoc($query) ) {
$nestedData = array();
$nestedData[] = $row['emp_code'];
$nestedData[] = $row['pay_month'];
$nestedData[] = number_format($row['earning_total'], 2, '.', ',');
$nestedData[] = number_format($row['deduction_total'], 2, '.', ',');
$nestedData[] = number_format($row['net_salary'], 2, '.', ',');
$nestedData[] = '';
$data[] = $nestedData;
$i++;
}
}
$json_data = array(
"draw" => intval($requestData['draw']),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data
);
echo json_encode($json_data);
}