У меня простенький чат который посредством js и ajax запроса выводит список сообщений.
//Функция отправки сообщения
function send()
{
//Считываем сообщение из поля ввода с id mess_to_add
var mess=$("#mess_to_send").val();
// Отсылаем паметры
$.ajax({
type: "POST",
url: "shablon/add_mess.php",
data:"mess="+mess,
// Выводим то что вернул PHP
success: function(html)
{
//Если все успешно, загружаем сообщения
load_messes();
//Очищаем форму ввода сообщения
$("#mess_to_send").val('');
}
});
}
//Функция загрузки сообщений
function load_messes()
{
$.ajax({
type: "POST",
url: "shablon/load_messes.php",
data: "req=ok",
// Выводим то что вернул PHP
success: function(html)
{
//Очищаем форму ввода
$("#messages").empty();
//Выводим что вернул нам php
$("#messages").append(html);
//Прокручиваем блок вниз(если сообщений много)
var chat_scroll = $('.mes');
chat_scroll.scrollTop(chat_scroll.prop('scrollHeight'));
}
});
}
setInterval(load_messes,1000);
Я хотел бы сделать админ панель которая удаляла бы нужное мне сообщение (крестик напротив каждого сообщения).
Я добавляю в файл load_messes.php (который выводит все сообщения на экран) тег с крестиком:
include("bd.php");
//Выбираем все сообщения
$res=mysql_query("SELECT * FROM `messages` ORDER BY `id` ");
//Выводим все сообщения на экран
while($d=mysql_fetch_array($res))
{
echo $d['login'].": ".$d['message'];
echo '<div class="delmes" data-mes="' . $d['id'] . '">✖</div>';// - тег с крестиком
}
Ajax запрос на передачу id сообщения при клике:
$(function (){
$('.delmes').on('click', function (){
var idmes = $(this).attr('data-mes');
$.ajax({
type: "POST",
url: "shablon/dekommes.php",
data: "req=ok",
data: {"idmes":idmes},
success: function(text){}
});
});
});
Вот файл который удаляет сообщение (при клике на крестик возле сообщения) dekommes.php:
include("bd.php");
$id=$_POST['idmes'];
$res="DELETE FROM `messages` WHERE `id`=$id ";
mysql_query($res);
Код рабочий когда не вложен в другой ajax запрос. У меня он работает на комментариях там без ajax запроса просто перенаправляет на страницу формы через header("Location:../det.php"); Есть ли альтернатива удалять сообщения из чата?