PHP Ajax - Как сделать условие, если модальное всплывающее окно? - PullRequest
0 голосов
/ 28 декабря 2018

Я хотел бы сделать условие, если страница теперь будет загружать модал?пока у меня есть эта кнопка, и она отправит ее на home.php, которая вызовет модальный режим.но проблема в том, что мне нужно обновить страницу, прежде чем появится модальное окно.

Теперь мне нужно автоматическое отображение модального окна без обновления страницы, чтобы условие выполняло это, или автоматическое обновление

* 1005.* PS У меня уже есть решение для этого, но страница обновлялась каждые 3 секунды, и мой компьютер зависает, поэтому это не практичный способ.

вот моя кнопка, которая вызовет модальный режим на onclick.php

$.confirm({
type: 'red',
theme: 'material',
title: 'Are you sure you want to make an announcement?',
content:'<strong>Announcement Info:</strong> ' + addInfo,
buttons: {
    Yes: {
        btnClass: 'btn-green',
        action: function () {
            $.ajax({
                type: "POST",
                url: "announcement.php",
                data: {
                    addInfo: addInfo
                },
                dataType: "text",
                success: function (data) {


//THIS TRIGGER THE MODAL
window.location.replace("change-password.php");
                },
                error: function (err) {
                    console.log(err);

                }

            });

        }

    }

и вот мой модальный триггер, который находится на home.php

, поэтому, когда эта кнопка была нажата, эта страница будет автоматически загружать модал.как я уже говорил ранее, вот мое решение, но страница обновлялась каждые 3 секунды, так что это не очень хорошая идея.

    <script>

THIS REFRESHED THE PAGE EVERY 3 SECONDS BUT IT IS NOT A PRACTICAL CODE

// function timedRefresh(timeoutPeriod) {
//   setTimeout("location.reload(false);",timeoutPeriod);
// }

// window.onload = timedRefresh(3000);

function timedRefreshIfNoCookie(timeoutPeriod, cookieName) {
    var cookies = document.cookie;
    if (cookies.indexOf(' '+cookieName+'=1;') < 0) {
        document.cookie = cookieName+'=1';
        setTimeout(function () {
            location.reload();
        }, timeoutPeriod);
    }
}
window.onload = function() {
    timedRefreshIfNoCookie(5000, 'refreshed');

}   

//THIS WILL TRIGGER THE MODAL 
 document.getElementById('myModal').style.display='block';

</script>

1 Ответ

0 голосов
/ 28 декабря 2018

Хранить временные данные в sessionStorage или localStorage или cookie.Затем выполните ваше условие.

if(yourCondition){

   window.sessionStorage("showModel","true");

}

//reload page

location.reload();

Каждый раз при загрузке страницы вызывайте всплывающую функцию непосредственно перед вашим </body> следующим образом.

if(window.sessionStorage("showModel") == "true"){

    $("#yourModelId").modal('show');

    //reset value to false to prevent continuous model popup 
    window.sessionStorage("showModel","false");

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