Есть страница, на которой выводятся записи с помощью из БД с помощью такого вот запроса:
SELECT * FROM base WHERE Status < 2 ORDER BY `id` DESC
И у каждой записи есть кпопка удаления:
<div id="4">Удалить</div>
(id уникальный под каждую запись)
Можно ли как-то при нажатии на этот <div>
получать его id
и использовать для того, чтобы обновить БД таким запросом:
UPDATE base SET Status='2' WHERE id = divID
Я знаю, что это можно делать во внешнем PHP
скрипте.
А можно ли делать это без перезагрузки страницы? Обновлять БД и обновлять данные на странице снова сделав запрос к БД и выведя ответ(он уже будет без этой записи).
Насколько я понял вам нужно что то подобное: Для работы скрипта нужны два файла index.php и query.php Код страницы index.php
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#id_delete_div').click(function(){
setVote('delete', $(this));
});
});
// element - кнопка, по которой кликнули
function setVote(type, element){
// получение данных из поля
var id_rec = element.parent().find('#id_rec').val();
var type='delete';
$.ajax({
// метод отправки
type: "POST",
// путь до скрипта-обработчика
url: "query.php",
// какие данные будут переданы
data: {
"id_rec": id_rec,
"type": type
},
// тип передачи данных
dataType: "json",
// действие, при ответе с сервера
success: function(data){
// в случае, когда пришло success. Отработало без ошибок
if(data.result == "success"){
alert('Удалено');
$(body).emty();
$(body).load('query_upd.php');
}else{
// вывод сообщения об ошибке
alert(data.msg);
}
}
});
}
</script>
</head>
<body>
<?php
$link = mysqli_connect('localhost', 'root', '', 'arenda');
if($result = mysqli_query($link, "SELECT * FROM records WHERE number > 2 ORDER BY `id` DESC")){
while($set = mysqli_fetch_assoc($result)){
$id = $set['id']; //поле из БД которое выводит ID
echo '<div id="id_delete_div">Ваш ID='.$id.'<a href="" id="delete">Удалить</a><input id="id_rec" type="hidden" value="'.$id.'"></div>';
}
}
?>
</body>
</html>
Код страницы query.php
<?php
// подключение к бд
$link = mysqli_connect('localhost', 'root', '', 'arenda');
// контейнер для ошибок
$error = false;
// получение данных
$idrec= $_POST['id_rec'];
if(mysqli_query($link, "UPDATE records SET number='1' WHERE id = '$idrec'")){
}
else{
$error = 'Ошибка при выполнении запроса';
}
// делаем ответ для клиента
if($error){
// если есть ошибки то отправляем ошибку и ее текст
echo json_encode(array('result' => 'error', 'msg' => $error));
}else{
// если нет ошибок сообщаем об успехе
echo json_encode(array('result' => 'success'));
}
?>
Код файла query_upd.php
<?php
$link = mysqli_connect('localhost', 'root', '', 'arenda');
if($result = mysqli_query($link, "SELECT * FROM records WHERE number > 2 ORDER BY `id` DESC")){
while($set = mysqli_fetch_assoc($result)){
$id = $set['id']; //поле из БД которое выводит ID
echo '<div id="id_delete_div">Ваш ID='.$id.'<a href="" id="delete">Удалить</a><input id="id_rec" type="hidden" value="'.$id.'"></div>';
}
}
?>
По идее должно работать.
Есть другой способ, без AJAX, но выполнение скрипта на этой же странице:
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
</head>
<body>
<?php
$link = mysqli_connect('localhost', 'root', '', 'arenda');
if(isset($_GET['id'])){
$idd = $_GET['id'];
mysqli_query($link, "UPDATE `records` SET number = '1' WHERE id='$idd'");
}
?>
<?php
if($result = mysqli_query($link, "SELECT * FROM records WHERE number > 2 ORDER BY `id` DESC")){
while($set = mysqli_fetch_assoc($result)){
$id = $set['id']; //поле из БД которое выводит ID
echo '<div id="id_delete_div">Ваш ID='.$id.'<a href="?id='.$id.'" id="delete">Удалить</a><input id="id_rec" type="hidden" value="'.$id.'"></div>';
}
}
?>
</body>
</html>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите плз в таком вопросеЯ хочу автоматизировать работу с файлами на своем компьютере с помощью PHP CLI
Я видел множество примеров кода на C и C++, в некоторых используется такая конструкция: