从AJAX请求获取javascript变量的数字时遇到问题


Having trouble getting a number from an AJAX request to a javascript variable

我正在尝试制作一个图表,在页面上显示CPU百分比,并随着CPU百分比的变化自动更新。我在理解如何在发送AJAX请求后从PHP脚本中获取信息方面遇到了问题。理想情况下,我希望能够使用变量"$cpuPercent",并在".update();"这是我更新功能的一部分。

我尝试过在update函数中使用php代码并回显$cpuPercent,但它不会每次都更新,因为它只运行一次,每次更新都使用相同的数字。

这是我的system_actions.php脚本中的php。

exec('wmic cpu get loadpercentage', $output2);
$cpuPercent = $output2[1];
echo json_encode($cpuPercent);

这是我的javascript

function getUsage(){
    $.ajax({
        url:'system_actions.php?action=cpu',
        async: true,
        dataType: 'json',
        type: 'post',
        success:function(output){
            var cpuPercent = parseInt(output);
            document.getElementById('cpu').value = cpuPercent;
            updateChart();
        }
    })
}
setInterval(getUsage, 2500);
function updateChart(){
    var link = document.getElementById('randombutton');
    link.click();
}
  $('.updatePieCharts').on('click', function(e) {
    e.preventDefault();
    charts.each(function() {
      var number = parseInt(document.getElementById('cpu').value);
      $(this).data('easyPieChart').update(number);
    });
  });

我确实感觉到这一切是如何协同工作的,但我不太清楚。任何帮助或正确的方向都将是伟大的。回到谷歌我去。

由于PHP脚本返回JSON,success回调中的output变量将是JavaScript对象或数组。无论哪种方式,您都无法在其上真正使用parseInt,因此var cpuPercent可能永远不会设置为任何有用的内容。

如果您发布一些PHP脚本的示例输出,我们可以告诉您如何定位您要查找的数字。

试试这个。

$.ajax({
    cache: false
})

此外,您还可以尝试将异步选项切换为false。

我认为这个flot的例子可能会对你有所帮助。http://www.flotcharts.org/flot/examples/realtime/index.html