Задать вопрос
@alexei_2002

Работа с mysql с помощью php и удаление html?

Есть веб-интерфейс работающий с sql.
6092d37ea5614035282654.png
Суть его заключается в том, чтобы от нажатия кнопки "Одобрить" или "Отклонить" в таблицу 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"); 
    }
});
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
samodum
@samodum
Какой вопрос - такой и ответ
Проще всего это делать через Ajax
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект