PHP / AJAX проверяет, изменилась ли переменная сеанса - PullRequest
1 голос
/ 18 августа 2010

Привет!

Мне нужно динамически проверять, меняется ли переменная сеанса каждые несколько секунд. Например, переменная сеанса PHP «x» может иметь значение «1», а затем через пять секунд - «2».

Переменная сеанса PHP "x" изменяется с помощью формы. Если переменная сеанса изменяется, мне нужно перезагрузить страницу.

Как я могу перезагрузить страницу, если переменная сеанса изменяется без обновления страницы вручную?

Ответы [ 2 ]

3 голосов
/ 18 августа 2010

AJAX - хорошее решение для чего-то подобного. Просто сделайте запрос к скрипту, который вернет текущее значение переменной сеанса. Если это не так, перезагрузите.

Итак, когда ваша страница загружается впервые, у вас есть что-то вроде

ПРИМЕЧАНИЕ. В этом примере используется библиотека jquery.

<script type="text/javascript">
    var currentSessionValue = <?php echo $_SESSION['something']; ?>;
    // pseudo code
    setTimeout(checkVariableValue, 5000);
    function checkVariableValue() {
         $.ajax({
            url: 'checkMyValue.php',
            success: function(newVal) {
                if (newVal != currentSessionValue);
                    currentSessionValue = newVal;
                    alert('Value Has Changed.');
                    doSomethingDifferent_or_refreshPage();
                }
         });
    }
</script>

checkMyValue.php

<?php
     start_session();
     echo $_SESSION['myVariable'];
?>
0 голосов
/ 21 марта 2017

я сделал это в своем коде

<script>
    function myFunction() {
    var name = document.getElementById("name").value;
    var email = document.getElementById("email").value;
    var password = document.getElementById("password").value;
    var phone = document.getElementById("phone").value;
    // Returns successful data submission message when the entered information is stored in database.
    var dataString = 'name=' + name + '&email=' + email + '&password=' + password + '&phone=' + phone;
    if (name == '' || email == '' || password == '') {
        alert("Please fill all fields");
    } else {
    // AJAX code to submit form.
        $.ajax({
            type: "POST",
            url: "signupAjax.php",
            data: dataString,
            cache: false,
            success: function(html) {

            var isRegistered = '<?php echo $_SESSION['name'];?>';
            var url = '<?php $url = $site_root.'index.php'; echo $url;?>';

            if(isRegistered.length > 0)
            {
                window.location = url;
            }
            else
            {
                alert(html);
            }

            }
        });
        }
        return false;
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...