setinterval $ _GET ["variable"] возвращает пустое значение - PullRequest
0 голосов
/ 13 января 2012

Я использую setInterval следующим образом:

setInterval(function(){ $('div#data').load('./data.php').fadeIn("fast"); },1000);

URL выглядит примерно так: localhost/test.php?data=ok

В data.php я получаю переменную из $ _GET:

$data = $_GET["data"];

Когда документ готов $data имеет значение ok, но когда загружается интервал, $data потерял свое значение.

Почему это происходит?

Ответы [ 2 ]

3 голосов
/ 13 января 2012

Поскольку HTTP является протоколом без состояний .Каждый запрос никак не связан с другим запросом.И для каждого HTTP-запроса с нуля создается новая среда для php-скрипта.Итак, второй запрос не имеет ?data=ok, поэтому сервер ничего не знает о $_GET["data"]

1 голос
/ 13 января 2012

Попробуйте 100%

test.html =>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$(document).ready(function(){
    setInterval(function(){ 
        $.ajax({
            url: 'test.php',
            type: "GET",
            data: "data=ok",
            cache: true,
            success: function(data){
                console.log(data);           
            }
            });
    },1000);
});
</script>
<title>Insert title here</title>
</head>
<body>

</body>
</html>

test.php =>

<?php echo $_GET['data']; ?>

теперь откройте консоль вашего браузера иВы видите «хорошо» в ответ

...