PHP – SQL – отключить, скрыть или включить кнопку на основе данных

цель

Скрыть, отключить или включить кнопки на основе данных, полученных из базы данных


SQL – таблица базы данных (SchoolData)

+-----+--------+------------+------------+----------------+-----------+ | ID | Class | Teacher | YearMonth | Description | Status | +-----+--------+------------+------------+----------------+-----------+ | 1 | Alpha | Sara | 2017/01 | Good & Clean | Pending | +-----+--------+------------+------------+----------------+-----------+ | 2 | Beta | John | 2016/11 | Big & Clean | Official | +-----+--------+------------+------------+----------------+-----------+ 

Веб-страница

 +---------------------------------------------------------------+ | | | |>Select Class<| |>Select Teacher<| |>Select Year/Month<| | | | | (Search) | | | | | |>>>>>>>>>>>>>>>>>>>>>>>>>>INPUT<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<| | | | {Class} {Teacher} {Description} | | | | | | (RE-SUBMIT) (Draft) (Submit) | | | +---------------------------------------------------------------+ 
  • легенда

    Выпадающий список – |> <|

    Кнопка – ()

    Ввод текста – {}


Описание веб-страницы

Кнопка RE-SUBMIT доступна только для администратора

Если сотрудники ищут | Альфа | Сара | 2017/01 | для «Класс», «Учитель» и «Год / Месяц» соответственно, поскольку данные уже существуют и сохраняются как Ожидание, сотрудники смогут снова вводить данные и выбирать либо «Черновик», либо «Отправить».

Если сотрудник нажимает «Черновик», статус этих данных будет сохранен как «Ожидание», но если сотрудник нажимает «Отправить», статус этих данных будет сохранен как «Официальный». Когда статус набора данных будет сохранен как «Официальный», кнопка «Отправка» будет отключена, даже если персонал снова ищет данные.

Например, если персонал ищет | Бета | Джон | 2016/11 |, персонал сможет просматривать только данные и кнопки DISABLED. Персонал не сможет представить новые данные. Причина этого заключается в том, что, если статус данных является «Официальным», это означает, что он был завершен и потребует от администратора повторного включения кнопки «Отправить» еще раз

Только администратор сможет повторно включить кнопку «Отправить», нажав кнопку «RE-SUBMIT». Администратору придется искать данные, которые были представлены как «Официальные», чтобы иметь возможность только нажать кнопку «RE-SUBMIT». Когда администратор нажимает кнопку «RE-SUBMIT», статус найденных Данных снова будет изменен на «Ожидание», чтобы позволить персоналу повторно отправить ввод.


логика

Это всего лишь логика желаемого решения. Это не фактические коды, которые я выполнял. Он просто используется, чтобы дать более четкое представление о веб-описании.

 (StatusQuery) SELECT status FROM SchoolData sd WHERE SelectedClass = sd.Class AND SelectedTeacher = sd.Teacher AND SelectedYearMonth = sd.YearMonth if((StatusQuery) == "Official"){ set.(btn.Submit).disabled set.(btn.Draft).disabled set.(btn.ReSubmit).enabled }else if((StatusQuery) == "Draft"){ set.(btn.Submit).enabled set.(btn.Draft).enabled set.(btn.ReSubmit).disabled } 

Кнопка RE-SUBMIT (SQL UPDATE)

 UPDATE SchoolData SET Status = 'Pending' WHERE Class= '$className' AND Teacher = '$teacherName' AND YEAR(MonthYear)= YEAR('$date') AND MONTH(MonthYear)= MONTH('$date'); 

Дополнительные замечания

Я очень новичок в PHP и JQuery, как и несколько дней назад, и мне пришлось взять на себя работу с предыдущим разработчиком. Эта ссылка Отключить кнопку отправки, если только данные исходной формы не изменились , очень похоже, но ее решение позволит кнопке «Отправить» после изменения ввода.

В то время как я хочу, чтобы Admin снова включил кнопку «Отправить» через кнопку RE-SUBMIT. Не только это, но и мои намерения – отключить кнопку «Отправить» после отправки данных для выбранного класса, учителя и года / месяца .

Это означает, что если бы я должен был ввести Data для ID 1, как показано в базе данных, но я нажимаю кнопку «Отправить» вместо кнопки «Черновик». Сохраненные данные будут иметь статус «Официальный». После того, как статус данных «Официальный», никто не может снова представить новые данные для этого.


Обновление (1) – 18/12/2017

Я могу отключить кнопку «Отправить» для выбранных данных после того, как она была отправлена ​​персоналом, и добавила HTML-вход readonly Attribute, чтобы представлять данные только и не допускать никаких изменений на входе. Теперь, когда сотрудники ищут данные через Class, Teacher и YearMonth , представленные данные больше не могут быть отредактированы или повторно отправлены. Однако кнопка RE-SUBMIT не работает.

Это код Javascript для моей кнопки RE-SUBMIT

 //RE-SUBMIT $(function (){ $("button#btnReSubmit").on('click', function (e){ e.preventDefault(); $("#inputStatus").val("reSubmit"); $.ajax({ type: 'post' url: 'changeClassStatus.php', data: $('#prodForm').serialize(), }); } } 

«ChangeClassStatus.php» – это место, где хранится SQL UPDATE

changeClassStatus.php code

 <?php //**************Connection to database********************// include "dbconnection.php"; //Those data are setting for checking data existance in the database $class= trim($_POST['class']); $date = $_POST['date']; $teacher = trim($_POST['teacher']); $date = $date."/01"; $status = $_POST['status']; if($status == 'reSubmit'])){ $sqlUpdate = mysqli_query($conn,"UPDATE SchoolData SET Status='Pending' WHERE (Class=$class AND Teacher=$teacher AND YEAR(MonthYear)= YEAR('$date') AND MONTH(MonthYear)= MONTH('$date'));"; $sqlExecute=$conn->query($sqlUpdate)or exit("Error code ({$conn->errno}): {$conn->error}"); } ?>