JS и jquery установить нового повара ie до окончания сеанса или закрытия окна - PullRequest
0 голосов
/ 30 апреля 2020

Я не буду делать уведомление, которое уведомляет пользователя о количестве новых предметов с момента его последнего посещения.

У меня есть код, который делает именно это, но есть проблема, если пользователь обновляет страницу или переходит на другую страницу в том же домене и возвращается, число равно 0. Мне нужен способ, чтобы указать число новые элементы остаются прежними, пока пользователь не закроет окно или не истечет время сеанса.

Код в настоящее время делает следующее:

<?php
$result = mysqli_query($con, "SELECT na_id from NALOG;");
$row_cnt = mysqli_num_rows($result);

printf("U bazi su trenutno %d naloga.\n", $row_cnt);
// takes the number of curent DB state

printf("<script type='text/javascript'>
$.cookie('".$_SESSION['username_login']."');
var logstari = $.cookie('".$_SESSION['username_login']."');
// reads old coocke vale and sets is as varibale


$.cookie('".$_SESSION['username_login']."', '%d');
var log = $.cookie('".$_SESSION['username_login']."');
//sets new state count as new cookie and  varible

var razlika = log - logstari;
// makes caluclation of diference

toastr.info(razlika + ' novih naloga od tvog zadnjeg posjeta'):
//lets the notification out
</script>", $row_cnt);

?>

Я также пробовал так:

        <?php
$result = mysqli_query($con, "SELECT na_id from NALOG;");
$row_cnt = mysqli_num_rows($result);

printf("U bazi su trenutno %d naloga.\n", $row_cnt);

printf("<script type='text/javascript'>
$.cookie('".$_SESSION['username_login']."');
var logstari = $.cookie('".$_SESSION['username_login']."'); 
var log = ".'%d', $row_cnt.";
var razlika = log - logstari;
toastr.info(razlika + ' novih naloga od tvog zadnjeg posjeta');

$.cookie('".$_SESSION['username_login']."', '%d');
</script>", $row_cnt);

                        ?>

Где я пытался установить var log = ".'%d', $row_cnt."; новый номер журнала прямо из php но как только я пытаюсь экранировать значение PHP и вставить его в переменную JS, оно не работает, и я получаю ошибку printf(): Too few arguments. Если каким-то образом я смогу выполнить эту работу, я думал в последней строке установить нового повара ie с новым счетом ТОЛЬКО после истечения сеанса или закрытия окна, если это возможно.

Не уверен, как решить эту проблему, поэтому любая помощь или руководство присваиваются.

РЕДАКТИРОВАТЬ:

Мое последнее достижение, все еще теряет значение после refre sh.

        <?php
$result = mysqli_query($con, "SELECT na_id from NALOG;");
$row_cnt = mysqli_num_rows($result);

printf("U bazi su trenutno %d naloga.\n", $row_cnt);

printf("<script type='text/javascript'>
var logstari = $.cookie('".$_SESSION['username_login']."');

var log = '%d';
var razlika = log - logstari;
toastr.info(razlika + ' novih naloga od tvog zadnjeg posjeta');
</script>", $row_cnt);

printf("<script type='text/javascript'>
$.cookie('".$_SESSION['username_login']."', '%d');
</script>", $row_cnt);

                        ?>

1 Ответ

0 голосов
/ 30 апреля 2020

Может быть, все будет в порядке

<?php
session_start();

if(!isset($_SESSION['news-number'])){
    $news_number = 0;

    // Do something
    echo "news number updated";
    $news_number = 45;
    // Do something

    $_SESSION['news-number'] = $news_number;
}

echo $_SESSION['news-number'];

?>

Вы можете сделать то же самое, используя куки, если пользовательский сеанс определен (или что-то в этом роде), не обновляйте cook ie, иначе определите с новым значением

РЕДАКТИРОВАТЬ:

<?php
session_start();

if(!isset($_SESSION['news-number'])){
    $result = mysqli_query($con, "SELECT na_id from NALOG;");
    $news_number = mysqli_num_rows($result);

    $_SESSION['news-number'] = $news_number;
}

echo "<script> var value=" . $_SESSION['news-number'] . "</script>";

?>

Это всего лишь пример логики c, не реализовывайте это, тогда echo var в скрипте это не лучший способ Передать переменную из php в js script

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...