В чем ошибка аjax удаления комментария?

122
28 июля 2019, 16:10

Изучаю ajax и решил переделать на своем тестовом сайте удаление комментариев. Собственно данный код удаляет комментарий только после перезагрузки страницы. Подскажите, где моя ошибка? html:

 <? foreach ($comments as $comment) : ?>
            <div class="comments">
                <div class="row comtext">
                    <div class="comname">
                        <?=$comment['name'];?>
                        <br>
                        <?=formatTime($comment['date']);?>
                    </div>
                    <div class="comtent">
                        <?=$comment['text'];?>
                    </div>
                    <div class="delete">
                        <button class="btn btn-sm btn-outline-light"  id="<?=$comment['id']?>">Удалить</button>
                    </div>
                </div>
            </div>
            <? endforeach;?>

JS:

 $(".comments .btn").on('click', function(){
    var commentId = this.id;
    var $currentComment = $(this).parents('.сomments');
    $.post("../delete.php", {id : commentId}, function( serverResponse ){
        if( serverResponse === 'ok' ) {
            alert('hi');
            $currentComment.remote();
        }
    })
})

PHP:

if($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
  if( is_numeric($_POST['id']) ) {
    $commentId = (int)$_POST['id'];
    $sqlDel = 'DELETE FROM comments WHERE id = ' . $commentId;
    $result = $db->query($sqlDel);
  }
}
Answer 1

код удаляет комментарий только после перезагрузки страницы

Он так и должен делать потому, что Вы в JS коде ничего не обновляете на странице.

По идее должно быть не:

$currentComment.remote();

а:

$currentComment.remove();

Если уж на то пошло.

READ ALSO
Работа с анонимными классами

Работа с анонимными классами

Задался таким вот вопросомПопробую описать

118
Как грамотно вставить название таблицы из переменной в SQL-запрос? PHP/PDO

Как грамотно вставить название таблицы из переменной в SQL-запрос? PHP/PDO

Забиндить невозможно, а аналогов mysql_real_escape_string() у PDO нетБудет ли правильно использовать PDO::quote() ?

122
Абсолютный путь к папке на уровень выше

Абсолютный путь к папке на уровень выше

Есть главная папка с проектом в которой находится папка конфига, в конфиге есть php файл, в котором я ищу абсолютный путь к этой папке так:

112
парсинг с библиотекой Simple HTML DOM

парсинг с библиотекой Simple HTML DOM

в парсере есть функция file_get_html, если в нее передать адрес

135