当使用JavaScript刷新时,PHP会丢失数据


When refreshing with JavaScript, PHP is losing its data

我使用这个JavaScript代码来刷新我的div。

在我的index.php

<div class="kita" id="kita"><?php include('progress.tpl');?></div>

这也是在我的index.php。我用下面的代码来刷新我的div。

<script type="text/javascript">
 var auto_refresh = setInterval(function (){
     $('#kita').load('/template/progress.tpl').fadeIn("slow");
 }, 10000); // refresh every 10000 milliseconds
</script>

这是我的进步。

<div class="progress">
  <div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="<?=$user['exppoints']; ?>"
  aria-valuemin="0" aria-valuemax="100" style="width:<?=$user['exppoints']/1000*2; ?>%">
    <?=$user['exppoints']; ?>/50000
   </div>
  </div>
</div>

我想让这个脚本每秒钟刷新一次,但在它刷新之后,代码也会在inspect元素中执行。

<div class="kita" id="kita">
 <div class="progress">
   <div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="<?=$user['exppoints']; ?>" aria-valuemin="0" aria-valuemax="100" style="width:<?=$user['exppoints']/1000*2; ?>%">
    <!--?=$user['exppoints']; ?-->/50000
   </div>
  </div>
 </div>

如果有人有解决方案,可以和我分享,那就太棒了。

问题是,当您尝试直接访问模板文件时,它是1)不被PHP解析,因为它是一个。tpl文件,您的服务器显然没有配置为解析。tpl文件作为PHP和2)即使它被PHP解析或只是一个。PHP文件,所有的变量将是未定义的。

下面是一个简单的例子:

page.php:

<?php
$myVar = 5;
include('out.php');
?>

out.php

<?php
echo 'The number is ' . $myVar;
?>

page.php的输出:

数字是5

out.php输出:

号码是

…因为out.php自己运行时没有设置$myVar。

您需要采用不同的方法,例如让JavaScript加载一个PHP文件,该文件a)设置模板所需的变量,b)包含模板。