1

我使用此脚本重新加载 ID 为新闻的 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 包含此代码以接收 lim 的值,

$lim=$_GET['lim'];

但每 10 秒后,'lim' 值被发送为 0。我需要根据脚本中的条件更新 'lim' 值。

我使用 echo 命令在 update.php 中检查了 $lim 值。始终为 0。我的代码中的错误是什么?

4

2 回答 2

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 并接收回新值。

于 2012-05-22T15:23:29.727 回答
1

当您的页面被渲染时,PHP 代码将只运行一次。它永远不会更新。呈现页面时,页面中的代码如下所示:

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

如果要更改 JavaScript 中 lim 参数的值,则必须在 JavaScript 中计算它。您可以使用 PHP 设置一个起始值,但同样,您只能使用这样的代码从 PHP 中获得一个值。

于 2012-05-22T15:24:02.813 回答