Хотя использование AJAX может быть более эффективным в этом случае, в теории нет ничего плохого в том, как вы сейчас отправляете данные.
Проблема, похоже, в том, как вы пытаетесь с ней справиться, когда вас перенаправляют обратно к задаче. php.
Ваш блок try
находится внутри функции, которая запускается только при нажатии кнопки, и происходит после команды window.location
, то есть никогда не будет выполняться ни при каких обстоятельствах.
Но мне кажется, вам нужно, чтобы этот фрагмент кода запускался при первой загрузке вашей страницы, чтобы он мог проверять значение каждый раз. Так что я думаю, что на самом деле его вообще не должно быть внутри какой-либо функции.
Попробуйте вот так:
function endProcess(task_id) {
var myObj;
myObj = task_id;
var myJSON = JSON.stringify(myObj);
window.location = "endDate.php?x=" + myJSON;
}
try {
var jobValue = document.getElementById('va').value;
if (jobValue === "false") throw "has not yet started!";
if (jobValue === "true") throw "has closed.";
}
catch(err) {
alert("The task " + err)
}
PS Я на 99,9% уверен, что вам не нужно JSON Вот. В вашу функцию endProcess
передается идентификатор задачи, который, исходя из вашего кода PHP, я сильно подозреваю, является либо числом, либо простой строкой. Таким образом, этого должно быть достаточно, чтобы функция выглядела так:
function endProcess(task_id) {
window.location = "endDate.php?x=" + task_id;
}
PPS Try / catch не совсем подходящий механизм для простого тестирования значения - он предназначен для перехвата исключений в коде, а не для принятия решений. о том, какое сообщение отображать. Просто простые инструкции if
и строка состояния были бы более подходящими:
var jobValue = document.getElementById('va').value;
var status = "The task ";
if (jobValue === "false") status += "has not yet started!";
else if (jobValue === "true") status += "has closed.";
alert(status);