Есть веб-интерфейс работающий с sql.
Суть его заключается в том, чтобы от нажатия кнопки "Одобрить" или "Отклонить" в таблицу mysql улетал запрос с записью в столбец и уже после! этого строка в веб-интерфейсе удалялась.
Ситуация такая... Реализовал отправку запросов, все работает, но при подключении JS со скриптом на удаление строк успевает отработать только JS. JS удаляет строку, не давая скрипту PHP сработать.
Вроде бы как можно сделать через ajax, но не знаю как.
<?php
require_once 'connection.php'; // Подключаем скрипт
echo '<link rel="stylesheet" href="css/main.css">';
// Подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
// Выполняем операции с базой данных
$query ="SELECT * FROM check_vacancy";
$qr_result = mysqli_query($link, $query)
or die(mysqli_error());
echo '<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">';
echo '<section class="vacancies">'; //Открываем секцию
echo '<div class="container">'; //Открываем контейнер
echo '<h2 class="title vacancies__title">Проверка вакансий</h2>';
echo '<div class="vacancies-info">';
echo '<div class="vacancies-info__item">Требуется</div>';
echo '<div class="vacancies-info__item">Специализация</div>';
echo '<div class="vacancies-info__item">Предприятие</div>';
echo '<div class="vacancies-info__item">Ссылка</div>';
echo '<div class="vacancies-info__item">Одобрить</div>';
echo '<div class="vacancies-info__item">Отклонить</div>';
echo '</div>';
echo '<div class="vacancies__list">'; //Открываем лист
echo '<div class="vacancies__empty">';
echo 'В данный момент непроверенные вакансии отсутствуют!';
echo '</div>';
//Выводим данные из таблицы MYSQL
while($data = mysqli_fetch_array($qr_result)){
echo '<div class="vacancy">'; //Открываем вакансию
echo '<div class="vacancy__item">';
echo '<span">'.$data['trebyetsya'].'</span>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<span>'.$data['specializaciya'].'</span>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<span>'.$data['specializaciya'].'</span>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<a class="btn vacancy__look-btn" href="'.$data['ssilka'].'" target="_blank">Просмотреть</a>';
echo '</div>';
echo '<form class="vacancy__form" method="POST">'; //Кнопка одобрить
echo '<div class="vacancy__item">';
echo '<input type="hidden" name="rowid" value="'.$data['id'].'">';
echo '<button class="vacancy__internal-btn vacancy__approve-btn" name = "btn_yes">';
echo '<img src="img/approve.svg" alt="Одобрить">';
echo '</button>';
echo '</div>';
echo '</form>';
echo '<form class="vacancy__form" method="POST">'; //Кнопка отклонить
echo '<div class="vacancy__item">';
echo '<input type="hidden" name="rowid" value="'.$data['id'].'">';
echo '<button class="vacancy__internal-btn vacancy__reject-btn" name = "btn_no">';
echo '<img class="vacancy__reject-btn-img" src="img/reject.svg" alt="Отклонить">';
echo '</button>';
echo '</div>';
echo '</form>';
echo '</div>'; //Закрываем вакансию
}
echo '<div class="vacancies__buttons">'; //Кнопки выйти и обновить
echo '<a class="btn vacancies__btn vacancies__logout-btn" href="index.php">Выйти</a>';
echo '<form method="POST">';
echo '<button class="btn vacancies__btn vacancies__update-btn" name = "btn_update">Обновить</button>';
echo '</form>';
echo '</div>'; //Закрываем блок с кнопками выйти и обновить
echo '</div>'; //Закрываем лист
echo '</div>'; //Закрываем контейнер
echo '</section>'; //Закрываем секцию
# Если кнопка "Обновить" нажата
if( isset( $_POST['btn_update'] ) )
{
while($data = mysqli_fetch_array($qr_result)){
echo '<div class="vacancy>';
echo '<div class="vacancy__item">';
echo '<span>'.$data['trebyetsya'].'</span>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<span>'.$data['specializaciya'].'</span>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<span>'.$data['specializaciya'].'</span>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<a class="btn vacancy__look-btn" href="'.$data['ssilka'].'" target="_blank">Просмотреть</a>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<form method="POST">';
echo '<input type="hidden" name="rowid" value="'.$data['id'].'">';
echo '<button class="vacancy__internal-btn vacancy__approve-btn remove" name = "btn_yes">';
echo '<img src="img/approve.svg" alt="Одобрить">';
echo '</button>';
echo '</form>';
echo '</div>';
echo '<div class="vacancy__item">';
echo '<form method="POST">';
echo '<button class="vacancy__internal-btn vacancy__reject-btn remove" name = "btn_no">';
echo '<img class="vacancy__reject-btn-img" src="img/reject.svg" alt="Отклонить">';
echo '</button>';
echo '</form>';
echo '</div>';
echo '</div>';
echo '</div>';
}}
# Если кнопка "Yes" нажата
if( isset( $_POST['btn_yes'] ))
{
// выполняем операции с базой данных
$mysqli_query ="UPDATE check_vacancy SET control = '1' WHERE id = ".$_POST['rowid'].";";
$qr_result = mysqli_query($link, $mysqli_query)
or die(mysqli_error());
}
# Если кнопка "No" нажата
if( isset( $_POST['btn_no'] ))
{
// выполняем операции с базой данных
$mysqli_query ="UPDATE check_vacancy SET control = '0' WHERE id = ".$_POST['rowid'].";";
$qr_result = mysqli_query($link, $mysqli_query)
or die(mysqli_error());
}
// закрываем подключение
mysqli_close($link);
echo '<script src="js/jquery-3.6.0.min.js"></script>';
echo '<script src="js/main.js"></script>';
?>
$(function()
{
//
//Заполнить блок vacancies__list вакансиями из БД
//
$('.vacancy__approve-btn').click(function() //При клике на галочку
{
$(this).parent('.vacancy__item').parent('.vacancy__form').parent('.vacancy').addClass('remove');
emptyCheck(); //Если на странице нет вакансий, показать сообщение о том, что их нет
});
$('.vacancy__reject-btn').click(function()
{
$(this).parent('.vacancy__item').parent('.vacancy__form').parent('.vacancy').addClass('remove');
//
//Удалить из БД непроверенных вакансий вакансию этого крестика?
//
emptyCheck(); //Если на странице нет вакансий, показать сообщение о том, что их нет
});
$('.vacancies__update-btn').click(function() //При клике на кнопку "Обновить"
{
loadingOn(); //Запустить анимацию загрузки
//$('.vacancy').remove(); //Удалить из html все вакансии
//closeEmpty(); //Скрыть сообщение о том, что непроверенные вакансии отсутсвуют
//
//Постепенно заполнить блок vacancies__list вакансиями из БД во время анимации загрузки
//
//loadingOff(); //Прекратить анимацию загрузки
});
function emptyCheck() //Если на странице нет вакансий, показать сообщение о том, что их нет
{
if(!$('.vacancy').length) //Условие выполнится, если на странице не осталось вакансий
{
showEmpty(); //Показать сообщение о том, что вакансии отсутсвуют
}
}
function showEmpty() //Показать сообщение о том, что непроверенные вакансии отсутсвуют
{
$('.vacancies__empty').addClass('vacancies__empty--active');
}
function closeEmpty() //Скрыть сообщение о том, что непроверенные вакансии отсутсвуют
{
$('.vacancies__empty').removeClass('vacancies__empty--active');
}
function loadingOn() //Запустить анимацию загрузки
{
$('.vacancies__list').addClass("loading");
}
function loadingOff() //Прекратить анимацию загрузки
{
$('.vacancies__list').removeClass("loading");
}
});