2012-05-22 3 views
1

Я использую этот скрипт перезагрузить DIV, чей идентификатор новости,Автоматическое обновление DIV не работает

<script type="text/javascript"> 
    var auto_refresh = setInterval(function() { 
     <? if ($lim >= 5) 
      $lim = 0; 
     else 
      $lim = $lim + 2; 

     if ($cnt == 1){ 
      $lim = 0; 
      $cnt += 1; 
     } ?> 

     $('#news').load('update.php?lim=<? echo $lim ?>'); 
    }, 10000); // refresh every 10000 milliseconds 
</script> 

update.php, containts этот код, чтобы получить значение Нт,

$lim=$_GET['lim']; 

Но через каждые 10 секунд значение «lim» отправляется как 0. Мне нужно обновить значение «lim» на основе условия в скрипте.

Я проверил в update.php значение $ lim с помощью команды echo. Всегда это 0. Что такое ошибка в моем коде?

+4

PHP является сервером, а JavaScript - клиентской стороной .... – ManseUK

+1

'php' в javascript' setInterval() '!! – thecodeparadox

+3

Вам нужно каждый раз получать '$ lim' с сервера, например, с вызовом AJAX. Используйте это значение, так как первое значение '$ lim' жестко закодировано в javascript. – Hidde

ответ

3

Вы, кажется, немного смущены относительно того, что является сервером/клиентами. $lim - это переменная PHP, поэтому она доступна только на стороне сервера. Вам нужно изменить свою логику, чтобы быть javascript. Попробуйте это:

var lim = <? echo $lim ?>; // assuming lim is always a number this will work. 
var cnt = 0; // just guessed at what this should be initially. 
var auto_refresh = setInterval(function() { 
    if (lim >= 5) 
     lim = 0; 
    else 
     lim = lim + 2; 

    if (cnt == 1){ 
     lim = 0; 
     cnt += 1; 
    } 

    $('#news').load('update.php?lim=' + lim); 
}, 10000); // refresh every 10000 milliseconds 

В качестве альтернативы можно изменить логику, чтобы сделать запрос AJAX на каждой итерации таймера, который проходит переменную lim на ваш PHP и получает обратно новое значение.

1

Код PHP будет запущен ровно один раз, когда ваша страница будет визуализирована. Он никогда не обновится. Код на вашей странице выглядит следующим образом, когда страница отображается:

<script type="text/javascript"> 
    var auto_refresh = setInterval(function() { 
     $('#news').load('update.php?lim=0'); 
    }, 10000); // refresh every 10000 milliseconds 
</script> 

Если вы хотите изменить значение параметра Ит в вашем JavaScript, вы должны вычислить его в JavaScript. Вы можете установить начальное значение с помощью PHP, но опять же, вы получите только одно значение из PHP с таким кодом.

Смежные вопросы