0

我有一个文件“data.php”,它处理传入的帖子、更新和从数据库读取。帖子每秒都会出现。

而且我有一个带有 js 脚本的文件“demo.php”,我的想法是我想以图表的形式呈现数据库中的数据。..所以它必须每秒钟左右更新一次。我该怎么做,我是否需要以某种方式触发 php 文件以获取新数据到 js 变量?

数据.php:

<?php
     include "k_connect.php";
     if(isset($_POST['value']))
     {

        $amp_f = number_format($_POST['value'], 2);
        $amp = explode('.', $amp_f);
        $d_tid = gmdate('Y-m-d H:i:s');

        $amp =str_replace(",","",$amp);
        $tid = explode(' ',$d_tid);
        $tid = str_replace(":","",$tid);

        mysql_query("UPDATE impdata SET amp=$amp[0]
        WHERE ID=1");
      }

      $tid_back=array();
      $amp_back = array();

      $x=0;
      $SQL = "SELECT * FROM impdata";
      $result = mysql_query($SQL);
      while ( $db_field = mysql_fetch_assoc($result) ) {
        $amp_back["amp"] = $db_field['amp'];
        $tid_back["tid"] = $db_field['tid'];    
        $amp_s =  $amp_s . json_encode($amp_back) . " ";
        $tid_s = $tid_s . json_encode($tid_back) . " ";
        $x++;
      }

?>

演示.php:

  function graf() {
       var amp = <?php echo json_encode($amp_s); ?>;
       var power = amp.split(":");
       alert(power[1].match(/\d+/g));
       var req = new XMLHttpRequest();
       setTimeout(graf, 500);
  }
  graf();

我在 demo.php 中得到了正确的值('power' 持有它),但只有一次,它不会更新,它只是相同的值,如果我按下 f5,我会得到一个新值。

我的想法是:'data.php' 每次有帖子时运行(每秒),然后更新 '$amp_s' 的值,这样我的 js 函数也会更新,因为它读取了 '$amp_s' 的值(setTimeout(graf, 500))。

我放的方式有什么问题吗?

我当然在 demo.php 中有这个:

include "k_connect.php";
include('data.php');
4

1 回答 1

0

一种方法是data.phpdemo.php这样包含:

<?php
header('Content-type: application/javascript');

include('/path/to/data.php');
?>
function graf() {
   var amp = <?php echo json_encode($amp_s); ?>;
   var power = amp.split(":");
   alert(power[1].match(/\d+/g));
   var req = new XMLHttpRequest();
   setTimeout(graf, 500);
}
graf();

然后您可以像往常一样调用 javascript <script type="text/javascript src="demo.php"></script>。此外,根据是否$amp_s在函数中定义,您必须将其声明为全局变量。

于 2013-01-06T03:59:17.023 回答