Я пытаюсь запустить следующий скрипт при нажатии кнопки на странице 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>
То, что вы пытаетесь сделать, абсолютно неверно. Вы не могли запускать PHP-код в клиентском скрипте. Вы можете использовать jquery для решения проблемы.
Прочтите: В чем разница между программированием на стороне клиента и на стороне сервера? & Как я могу предотвратить SQL-инъекцию в PHP?, прежде чем идти дальше.
Никогда не пишите SQL-запросы на стороне клиента. Клиенты могут легко изменить запрос. Они могут даже удалить всю вашу базу данных!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я бы создал страницу 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]'");
?>
попробуйте использовать ajax