我使用此脚本重新加载 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>
更新.php包含此代码以接收 lim 的值,
$lim=$_GET['lim'];
但是每 10 秒后,"lim"值将作为 0 发送。我需要根据脚本中的条件更新"lim"值。
我使用 echo 命令签入了更新.php以获取$lim值。始终为 0。我的代码中有什么错误?
你似乎对什么是服务器端/客户端有点困惑。 $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 并接收回新值。
当页面呈现时,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 获得一个值。