php - 来自 mysql 服务器的 ajax.reload 出现错误 : property is undefined

标签 php mysql ajax database reload

我正在使用 php 和 ajax 从 mysql 数据库收集实时数据。我希望数据每 2 秒实时更新一次。

我的代码根据需要显示图表和数据,但不会实时更新数据库中的数据。要做这件事的代码是:

setInterval(function(){
            jsonData.ajax.reload();
            }, 2000);

我认为错误就在那里,当我用谷歌浏览器检查元素时,它告诉我“未捕获的类型错误:无法读取未定义的属性‘重新加载’”。

完整的 JS 代码如下:

<script type="text/javascript">

      // load chart lib
      google.load('visualization', '1', {
        packages: ['corechart']
      });

      // call drawChart once google charts is loaded
      google.setOnLoadCallback(drawChart);

function drawChart() {
     var jsonData = $.ajax({
         url: "php/connection3_temp.php",
         dataType:"json",
         async: true
          }).done(function (results) {

          var data = new google.visualization.DataTable();

          data.addColumn('datetime', 'Time');
          data.addColumn('number', 'Ambient Temp.');
          data.addColumn('number', 'Object Temp.');
          data.addColumn('number', 'Humidity');

          $.each(results, function (i, row) {
            data.addRow([
              (new Date(row.timestamp)),
              parseFloat(row.amb_temp),
              parseFloat(row.obj_temp),
              parseFloat(row.hum)
            ]);
          });

         var options = {
          title: 'Temperature and Humidity against Time',
          legend: { position: 'bottom' },
          series: {
                0: {targetAxisIndex: 0},
                1: {targetAxisIndex: 0},
                2: {targetAxisIndex: 1}
          },
          vAxes: {0:    {title: 'Temp. (°C)',
                        minValue: 0,
                        maxValue: 30
                        },
                  1:    {title: 'Humidity (%)',
                        minValue: 20,
                        maxValue: 80
                        }
                 },
          hAxis: {
                  title: 'Time (s)'
                 },
        };

          var chart = new google.visualization.LineChart($('#temp_chart').get(0)); 
          chart.draw(data, options);

        });

        setInterval(function(){
        jsonData.ajax.reload();
        }, 2000);

      }

</script>

还有 PHP:

<?php

$servername = "localhost";
$username = "root";
$password = "raspberryblue";
$dbname = "test";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM sensortag3 ORDER BY id DESC LIMIT 3000";
$result = $conn->query($sql);

// All good?
if ( !$result ) {
  // Nope
  $message  = 'Invalid query: ' . mysqli_error() . "<br>";
  $message .= 'Whole query: ' . $sql;
  die( $message );
}

// Print out rows
$prefix = '';
echo "[\n";
while ( $row = mysqli_fetch_assoc( $result ) ) {
  echo $prefix . " {\n";
  echo '  "timestamp": "' . $row['timestamp'] . '",' . "\n";
  echo '  "amb_temp": "' . $row['amb_temp'] . '",' . "\n";
  echo '  "obj_temp": "' . $row['obj_temp'] . '",' . "\n";
  echo '  "hum": "' . $row['hum'] . '"' . "\n"; 
  echo " }";
  $prefix = ",\n";
}
echo "\n]";

$conn->close();
?>

最佳答案

您的脚本中没有名为 reload() 的属性。这就是控制台显示未定义属性 reload() 的原因。所以在ajax()中添加reload方法来刷新数据。

关于php - 来自 mysql 服务器的 ajax.reload 出现错误 : property is undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701399/

相关文章:

php - 生产时 symfony 错误 500 而不是 404

MySQL:从显示整个数据库的多个表中收集特定数据

mysql - "sum"的最小值/最大值及相对值

mysql - MySql 是否像 SQL Server 一样有 xml 支持?

javascript - extjs 4 : display image from Mysql blob value

javascript - 使用ajax将参数发送到iframe

上传文件 &lt;input&gt; 的 php javascript 表单验证

php - MySQL Spatial 用于两点之间的对象?

javascript - 在 Javascript 中延迟 ajax 响应

PHP CURL "NSS: client certificate not found (nickname not specified)"问题