Похоже, что вы используете серверную переменную $num_messages
, которая представляет собой значение, которое существует на вашем сервере, но которое ваш клиент не может контролировать, если вы не отправите запрос обратно на свой сервер, явно обновив количество сообщений который используется для заполнения значения $num_messages
на вашей странице messages.php
.
Вы удаляете уведомление с экрана на странице HTML с помощью JavaScript, но оно возвращается, как только вы загружаете messages.php
, потому что значение фактически не обновляется на сервере, поэтому когда страница перезагружается, она обслуживается с исходным значением $num_messages
, как и раньше.
Из вашего removeBadge()
обработчика кликов вы можете отправить запрос на страницу PHP, которая обрабатывает запрос для обновления любых данных, используемых для заполнения $num_messages
. Вы можете сделать это асинхронно, однако вы столкнетесь с проблемами на messages.php
, если асинхронная операция по обновлению количества сообщений не будет завершена до отображения страницы messages.php
. Вместо использования тега <a>
, который будет перемещаться сразу при нажатии, есть несколько вариантов; переключитесь на что-то вроде тега <span>
и перенаправьте на сообщения. php, когда обратный вызов asyn c завершится успешно. JQuery имеет очень простую в использовании асинхронную функциональность. Ознакомьтесь с методом asyn c . Настройте перенаправление на messages.php
для успешного обратного вызова.
Надеюсь, это поможет.