У меня есть оператор switch case в сценарии PHP, который возвращает строковое значение на основе значений 'Day' и 'Hour', предоставленных вызовом Ajax из файла JS. Но всякий раз, когда значения являются 0 (то есть воскресенье для переменной дня и 0, как в полночь для переменной часа) оператор не работает, и значение возвращается пустым. Кажется, я не могу найти решение, вот более короткая версия кода для PHP функция и Ajax Call;
function getDayTimeData($day, $time){
$program = "";
switch($day){
case 0: //Sunday
switch($time){
case $time < 1:
$program = 'Be Our Guest';
break;
case $time < 6:
$program = 'Club Technoise';
break;
case $time < 12:
$program = 'Morning Juice';
break;
case $time < 21:
$program = 'Detox';
break;
case $time < 24:
$program = 'Disco Ball';
break;
}
break;
}
}
if(isset($_POST["DayData"]) && isset($_POST["TimeData"]))
{
echo(getDayTimeData($_POST["DayData"],$_POST["TimeData"]));
}
Вот Jquery Ajax Script
function getDayTimeAjax(_day,_time){
var def2 = $.Deferred();
setTimeout(function(){
if(xhr && xhr.readyState != 4){
xhr.abort();
}
var xhr = $.ajax({
type: 'post',
url: 'returnPoster.php',
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
data: {DayData: _day, TimeData: _time},
dataType: 'text',
success: function(x){
programInfo = x;
def2.resolve();
}
})
},2000);
return $.when(def2).done(function(){}).promise();
}
var d = new Date();
var programInfo = ".";
setInterval(function () { updateProgram() }, 3000);
function updateProgram(){
getDayTimeAjax(d.getDay(),d.getHours()).done(function(){
console.log(programInfo.trim());
})
}
EDIT: Извините, ребята выглядят как будто я дал некоторую дезинформацию по этому поводу, так как я очень спешил, когда настраивал эту ветку. Проблема возникает только тогда, когда значение $ time равно 0 . Значения кажутся прекрасными до тех пор, пока "case $ time <1: "выполняется операция. Оттуда, даже если переменная $ time имеет значение 0, он не выполняет блок кода внутри первого случая, поэтому программная переменная остается пустой. Все остальные значения возвращают значения из оператора switch . </p>