Как удалить из базы данных MySQL с помощью PHP в Javascript

Я пытаюсь запустить следующий скрипт при нажатии кнопки на странице php. Предполагается, что сценарий удаляет строку из таблицы базы данных MySQL.

Я прочитал из других предыдущих вопросов, что вы не можете использовать php в javascript на странице php, поскольку php выполняется вместе с загрузкой страницы. Теперь, когда он находится в настоящее время, данные действительно удалены, но именно тогда страница загружается.

Как правильно запускать следующий запрос при нажатии кнопки на странице php? (К вашему сведению, я использую sweetalert)

<script>
    function alertdelete() {
        {
            swal({
                    title: "Are you sure?",
                    text: "This delete is permanent!",
                    icon: "warning",
                    buttons: true,
                    dangerMode: true,
                })
                .then((willDelete) => {
                    if (willDelete == true) {
                        <?php
                            mysqli_query($db, "DELETE FROM employee WHERE EMPNO='$id'");
                        ?>
                        swal("The employee has been deleted!", {
                            icon: "success",
                        });
                    } else {
                        swal("Ok, the employee will not be deleted!");
                        return;
                    }
                    <?php
                        openPage("employees.php",3000);
                    ?>
                });
        }
    }
</script>

попробуйте использовать ajax

pinoyCoder 10.03.2018 10:07

То, что вы пытаетесь сделать, абсолютно неверно. Вы не могли запускать PHP-код в клиентском скрипте. Вы можете использовать jquery для решения проблемы.

NIKHIL NEDIYODATH 10.03.2018 10:10

Никогда не пишите SQL-запросы на стороне клиента. Клиенты могут легко изменить запрос. Они могут даже удалить всю вашу базу данных!

Roshana Pitigala 10.03.2018 10:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
104
3

Ответы 3

Я бы создал страницу deleteRow.php с вашим запросом. Обязательно используйте правильную проверку, прежде чем отправлять запрос.

Используйте AJAX в своем файле js, чтобы вызвать страницу delteRow.php.

Вот ссылка на AJAX: http://api.jquery.com/jquery.ajax/

используйте ajax для отправки запроса в файл php, который имеет функцию удаления Изображение

   var xhttp = new XMLHttpRequest();
  xhttp.open("POST", "deletePage.php", true);
  xhttp.send();

Если вы не хотите использовать метод xmlHttpRequest, вы можете использовать получить api

fetch('url',{method: "POST",body = "param=val"}).then((res)=>{//do something with response})

узнать о выборке

«НЕ ЗАБУДЬТЕ ПРОВЕРИТЬ ОТПРАВИТЬ ЗАПРОС ПРИ СОЗДАНИИ ФУНКЦИИ УДАЛЕНИЯ, ЕСЛИ ВЫ СЛУЧАЙНО ПОСЕТИЛИ СТРАНИЦУ, ОН УДАЛЯЕТСЯ»

Используйте ajax (лучший способ - использовать JQuery, а не простой javascript), как показано ниже:

<script>
    function alertdelete() {
        {
            swal({
                    title: "Are you sure?",
                    text: "This delete is permanent!",
                    icon: "warning",
                    buttons: true,
                    dangerMode: true,
                })
                .then((willDelete) => {
                    if (willDelete == true) {
                        var sendArray = {"id": YOUR_ROW_ID};
                        $.post("db_action.php", sendArray, function() {
                            swal("The employee has been deleted!", {
                                icon: "success",
                            });
                        });
                    } else {
                        swal("Ok, the employee will not be deleted!");
                        return;
                    }
                });
        }
    }
</script>

А для файла db_action.php у вас может быть код ниже:

<?php
      mysqli_query($db, "DELETE FROM employee WHERE EMPNO='$_POST[id]'");
?>

Другие вопросы по теме