проблема с отображением title (+Ajax)

135
09 апреля 2019, 04:20

<title><?=$title?></title> < ok

<title id="NewMess"><?=$title?></title> <- если id="NewMess" не пуст, отображает "новое сообщение", а если пуст, то отображает URL сайта, место текста который содержится в $title.

mail.js:

function show_mail()
{
    $.ajax({
        url: "/include/mail.php",
        cache: false,
        success: function(html){
           $("#NewMess").html(html);
        }
    });
}
$(document).ready(function(){
   setInterval('show_mail()',5000);
});

mail.php

<?
$mail = DB :: $dbs -> querySingle("SELECT COUNT(*) FROM `mail` WHERE `id_contact` = '".App::user()->id."' AND `read` = '0'",0);
if ($mail!=0) echo text($mail, array('нове повідомлення','нових повідомлень','нових повідомлень'));
?>

Как исправить? С учетом того, что js подключается в конце страницы, а содержание $title определяется в начале страницы и условие else echo $title; в файле mail.php ничего не даст. А если подключить js вначале, то тогда не работает увидомление.

Answer 1

Запишите в дата атрибуте заголовок по умолчанию.

<title data-default="<?= $title ?>"><?= $title ?></title>

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

function show_mail() {
    $.ajax({
        url: "/include/mail.php",
        cache: false,
        success: function (html) {
            if (html.length != 0) $("title").html(html);
            else $('title').html($('title').data('default'));
        }
    });
}
$(document).ready(function () {
    setInterval('show_mail()', 2000);
});

И еще к слову давать тегу title идентификатор нет никакого смысла, т.к данный тег в документе может быть только один.

READ ALSO
Как происходит сортировка в MySQL с помощью ORDER BY

Как происходит сортировка в MySQL с помощью ORDER BY

Сортировка в не сколько столбцов происходит же таким образом :

156
После перезагрузки vps не стартует mysql

После перезагрузки vps не стартует mysql

На vps поднял веб-сервер php7, apache, mysql

160
Как исправить баг в гуглхроме при использовании border-radius?

Как исправить баг в гуглхроме при использовании border-radius?

подскажите пожалуйста как исправить баг в хроме

206