2012-01-13 3 views
-1

Я использую 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 потеряла свою V alue ..

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

ответ

1

Попробуйте это на 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']; ?> 

теперь открытая консоль вашего браузера, и вы видите 'ok' в ответ

+0

THX брат, но ошибка уже исправлена ​​мной ... THX для обмена ..! –

3

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

+0

ну, как сделайте это .. '? data = ok' –

+1

@Jin Sun: передать его ;-)' load ('./ data.php? data = ok') ' – zerkms

+0

Я использовал его, все еще не работал! любой совет? –