Это второй раз, когда я опубликовал эту проблему. Я удалил первое сообщение, чтобы попытаться упростить его чтение.
Мне нужно изменить цвет фона столбца dataTables, основываясь на возврате ajax-возврата. если ajax возвращает [{"BoardName": "Главный прием", "Статус": 1}], я хотел бы, чтобы цвет фона столбца был зеленым, иначе будет красным.
MySQL
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
$sql = "SELECT RecordID, RoomName FROM ConfBookings2017 WHERE HotelID = '".$_SESSION['_amember_user']['hotelid']."' AND FullDb = 1";
$res = mysqli_query($conn, $sql) or die("Error: ".mysqli_error($conn));
$TotalRcount = $res->num_rows;
$data = array();
if($TotalRcount > 0) {
while($row = mysqli_fetch_array($res)){
$BoardName = $row['RoomName'];
$Rcount = 1;
$data[] = array(
"BoardName" => $BoardName,
"Status" => $Rcount);
}
echo json_encode($data);
} else {
$BoardName = "No overrides active";
$Rcount = 0;
$data[] = array(
"BoardName" => $BoardName,
"Status" => $Rcount);
echo json_encode($data);
}
Сценарий
$(document).ready(function(){
var table = $('#WayFinderOverrideStatusTable').DataTable( {
ordering: false,
paging: false,
searching: false,
bInfo : false,
responsive: true,
fixedHeader: true,
scrollX: false,
pageResize: true,
ajax: {
url: 'check_wayfinder_override.php',
dataSrc: ''
},
columns: [
{ data: 'BoardName',"sWidth": "100%" },
{ data: 'Status',"visible": false },
],
rowCallback: function( row, data, dataIndex ) {
console.log("Log 1");
if ( data[1] == 1 ) {
console.log("Log 2");
$(row).find('td:eq(0)').addClass('WayFinderOverrideStatusOn');
} else {
console.log("Log 3");
$(row).find('td:eq(0)').addClass('WayFinderOverrideStatusOff');
}
},
});
setInterval( function () {
table.ajax.reload();
}, 30000 );
});
CSS
.WayFinderOverrideStatusOn {
color: #333;
font-family: Tahoma, Geneva, sans-serif;
font-size: 0.9em;
padding-left: 5px;
line-height: 24px;
background-color: #FFD7D7;
border-bottom-width: 0.5px;
border-bottom-style: solid;
border-bottom-color: #999;
}
.WayFinderOverrideStatusOff {
color: #333;
font-family: Tahoma, Geneva, sans-serif;
font-size: 0.9em;
padding-left: 5px;
line-height: 24px;
background-color: #E1FFE1;
border-bottom-width: 0.5px;
border-bottom-style: solid;
border-bottom-color: #999;
}
После тестирования в отладчике браузера появляется сообщение «if (data [1] == 1){"если не собирать содержимое" data: 'Status' ". Может кто-нибудь увидеть, где я иду не так.
Большое спасибо заранее за вашу помощь и время.