Задать вопрос
Joannes
@Joannes
html, css, js, angular, bootstrap

Как обновить данные после ajax?

Всем привет.
Прошу объясните хотя бы теоретически.
На php пишу обычный блог, т.е. есть страница где выводятся материалы, у каждого материала есть рейтинг в виде кнопки лайка и дизлайка.
К примеру я захожу на статью, нажимаю "лайк" мне нужно что бы после нажатия, произошла запись в базу, что впринцепи у меня все работает, записывается строка в базу мол юзер с определенным id поставил лайк к статье с таким то id. Т.е. все гуд. Но проблем а в том что после нажатия мне надо обновить данные, т.е. рядом стоит число лайков, но должно увеличиться ну и соответсвенно добавиться класс к кнопке лайка что бы кнопка поменяла цвет. Ну это уже как бы мелочи, там поменять цвет или размер и т.д.

Проще говоря мне надо после записи данных в бд, вытащить новые данные и обновить информацию (количество лайков) на странице. Ну понятное дело все через ajax без перезагрузки страницы.

Записать могу, вытащить новые данные не могу -(
  • Вопрос задан
  • 2457 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
При отправки через ajax вам приходит ответ, событие success. Вот в нем и обновляйте. Мало того Вы же знаете что при клике +1 будет именно +1. Значит можно найти то что было и увеличить на единицу или уменьшить еще до ajax. Или в success если хотите быть уверены, что записалось.
Ответ написан
Комментировать
madmaker
@madmaker
Full stack программист
$.ajax({
    type: "POST",
    url: u_sroot+u_mod+"/page",
    data: 'var1',
    success: function(answer){
        $("#likes_number").html(answer)
    },
    error: function(){}
});


Собственно на answer получаешь с сервака новые данные и записываешь с помощью jQuery новое число.
Если нужно - могу подробней
Ответ написан
Комментировать
khipster
@khipster
request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
        var response = request.responseText; // В request.responseText ответ сервера.
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы