Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JQuery脚本中刷新CURTIME()值_Javascript_Php_Jquery_Mysql - Fatal编程技术网

Javascript 在JQuery脚本中刷新CURTIME()值

Javascript 在JQuery脚本中刷新CURTIME()值,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我正在学习建立一个光伏电站监测网站。我的硬件每10秒将数据传送到SQL server。现在,我必须以仪表的形式表示记录的数据,仪表每10秒刷新一次其值。但问题是,我无法在当前时间刷新我的值 我正在使用mysql查询CURTIME()来匹配计算机时间。但是当我重新应用查询时,CURTIME()不会刷新到实际的当前时间。当我加载页面时,它将保持上次读取的CURTIME()。因此,CURTIME()只有在我重新加载页面后才会刷新 我的问题是,如何在不需要重新加载页面的情况下刷新mysql查询中CURT

我正在学习建立一个光伏电站监测网站。我的硬件每10秒将数据传送到SQL server。现在,我必须以仪表的形式表示记录的数据,仪表每10秒刷新一次其值。但问题是,我无法在当前时间刷新我的值

我正在使用mysql查询
CURTIME()
来匹配计算机时间。但是当我重新应用查询时,
CURTIME()
不会刷新到实际的当前时间。当我加载页面时,它将保持上次读取的
CURTIME()
。因此,
CURTIME()
只有在我重新加载页面后才会刷新

我的问题是,如何在不需要重新加载页面的情况下刷新mysql查询中
CURTIME()
的值?以下是我的脚本供参考:

<script>
  var g1, g2, g3, g4, g5, g6;
  var pvvol  = <?php include 'pvvol.php';?>;
  var pvcur  = <?php include 'pvcur.php';?>;
  var batvol = <?php include 'batvol.php';?>;
  var batcur = <?php include 'batcur.php';?>;
  var chgcur = <?php include 'chgcur.php';?>;
  var irrad  = <?php include 'irrad.php';?>;

  window.onload = function(){
    var g1 = new JustGage({
      id: "g1", 
      value: pvvol, 
      min: 0,
      max: 80,
      title: "PV Voltage",
      label: "Volt"
    });

    var g2 = new JustGage({
      id: "g2", 
      value: pvcur, 
      min: 0,
      max: 30,
      title: "PV Current",
      label: "Ampere"
    });

    var g3 = new JustGage({
      id: "g3", 
      value: chgcur, 
      min: 0,
      max: 80,
      title: "Charge Current",
      label: "Ampere"
    });

    var g4 = new JustGage({
      id: "g4", 
      value: batvol, 
      min: 0,
      max: 30,
      title: "Battery Voltage",
      label: "Volt"
    });

    var g5 = new JustGage({
      id: "g5", 
      value: batcur, 
      min: -50,
      max: 50,
      title: "Battery Current",
      label: "Ampere"
    });

    var g6 = new JustGage({
      id: "g6", 
      value: irrad, 
      min: 0,
      max: 1200,
      title: "Irradiance",
      label: "Watt / Sqm"
    });

    setInterval(function() {
      g1.refresh(pvvol);
      g2.refresh(pvcur);          
      g3.refresh(chgcur);
      g4.refresh(batvol);
      g5.refresh(batcur);
      g6.refresh(irrad);
    }, 2500);
  };
</script>

变量g1、g2、g3、g4、g5、g6;
var-pvvol=;
var-pvcur=;
var batvol=;
var batcur=;
var chgcur=;
var irrad=;
window.onload=函数(){
var g1=新的JustGage({
id:“g1”,
值:pvvol,
分:0,,
最高:80,
标题:“光伏电压”,
标签:“伏特”
});
var g2=新的JustGage({
id:“g2”,
值:pvcur,
分:0,,
最高:30,
标题:“光伏电流”,
标签:“安培”
});
var g3=新调整器({
id:“g3”,
价值:chgcur,
分:0,,
最高:80,
标题:“充电电流”,
标签:“安培”
});
var g4=新的JustGage({
id:“g4”,
价值:batvol,
分:0,,
最高:30,
标题:“电池电压”,
标签:“伏特”
});
var g5=新的JustGage({
id:“g5”,
价值:巴特库,
最低:-50,
最高:50,
标题:“电池电流”,
标签:“安培”
});
var g6=新的JustGage({
id:“g6”,
价值:伊洛德,
分:0,,
最高:1200,
标题:“辐照度”,
标签:“瓦特/平方米”
});
setInterval(函数(){
g1.刷新(pvvol);
g2.刷新(pvcur);
g3.刷新(chgcur);
g4.刷新(batvol);
g5.刷新(batcur);
g6.刷新(伊洛德);
}, 2500);
};

调用数据库的PHP代码只运行一次(每次请求/刷新页面时)。这意味着来自数据库的数据永远不会被更新,即使JavaScript更新代码每2.5秒运行一次

您需要使用从数据库中获取最新信息。JavaScript/jQuery代码对PHP文件进行AJAX调用,该文件从数据库返回最新信息。然后,这些信息由JS/jQuery处理,g1到g6可以用新数据刷新

AJAX代码示例 PHP代码:getGaugeData.PHP

此文件由AJAX请求调用。它的工作是从数据库中获取数据,并以简单的格式将其返回到JavaScript代码

注意:我假设包含的每个PHP文件现在都创建PHP变量(
pvvol、pvcur、batvol、batcur、chgcur、irrad
)并为它们赋值


如果您希望在不重新加载页面的情况下从服务器获取新数据,我建议您研究ajax


< Ajax用于从JavaScript向服务器发出调用。

我认为您的帮助是有用的。我在研究AJAX调用时发现了一些东西。但我的脚本无法让它工作。你能提供更多关于如何使用它的线索吗?谢谢。我会整理一些东西并更新我的答案。你帮了我大忙!现在我只需要把这些代码合并到我的网站上。谢谢你,伙计!没问题。您只需对include文件进行一些小的更改,就可以开始了。:)
<?php
    /*
     * This PHP resource is only called via AJAX - it returns data in JSON format!
     */

    //Include PHP files that get the data
    //Each include file should define a PHP variable with the same name as the file: pvvol, pvcur, batvol, batcur, chgcur, irrad
    include 'pvvol.php';
    include 'pvcur.php';
    include 'batvol.php';
    include 'batcur.php';
    include 'chgcur.php';
    include 'irrad.php';

    //Create associative array of the data
    $data = array(
        'pvvol' => $pvvol,
        'pvcur' => $pvcur,
        'batvol' => $batvol,
        'batcur' => $batcur,
        'chgcur' => $chgcur,
        'irrad' => $irrad
    );

    //Convert the data into a JSON format string
    $output = json_encode($data);

    //Return the JSON data to the JS code
    echo $output;
    exit;
?>
setInterval(function() {

    //Set up AJAX call to getGaugeData.php
    $.getJSON('getGaugeData.php').done(function(data) {

        //Use the AJAX data to refresh the gauges
        g1.refresh(data.pvvol);
        g2.refresh(data.pvcur);
        g3.refresh(data.chgcur);
        g4.refresh(data.batvol);
        g5.refresh(data.batcur);
        g6.refresh(data.irrad);

    });

}, 2500);