将javascript局部变量发送到全局数组

将javascript局部变量发送到全局数组,javascript,php,ajax,Javascript,Php,Ajax,我需要将y变量值传递给全局数组。ajax可以完美地获取json对象数据。我尝试了很多方法。但是没有运气。plz帮助 var data = [], totalPoints = 10; function getRandomData() { if (data.length > 0) { data = data.slice(1); } // Do a random walk while (data.length < totalPoints) { va

我需要将y变量值传递给全局数组。ajax可以完美地获取json对象数据。我尝试了很多方法。但是没有运气。plz帮助

var data = [],
  totalPoints = 10;

function getRandomData() {

  if (data.length > 0) {
    data = data.slice(1);
  }
  // Do a random walk

  while (data.length < totalPoints) {
    var y;

    $.ajax({
      url: 'phpHelperDoc/get_live_data.php',
      type: 'POST',
      data: {
        authentication: "SN0000000004"
      },
      global: false,
      async: false,
      success: function(msgy) {
        var day_data = JSON.parse(msgy);
        y = day_data['value_1_live'];
        //Need to send this y value to var data=[];
      }
    });
    data.push(y);
  }
}
var数据=[],
总分=10;
函数getRandomData(){
如果(data.length>0){
data=data.slice(1);
}
//散散步
while(data.length
您只需将

data.push(y); 

在成功函数内部。如果那不起作用。ajax还有一个完整的函数,在ajax调用完成时执行。请尝试将代码从success复制到complete中。

您的数据数组不大于零,因此,您的逻辑无法工作

替换:

如果(data.length>0)

与:

如果(data.length>=0)


空数组长度为零。

有几种方法可以通过拉、调用或绑定来实现。也可以使用全局函数()。但是,让我先解释一下问题和函数解决方案

当您调用
$.ajax({…})时任何返回值都在函数的范围内。要克服这一点。在全局作用域上创建一个函数,将新值推送到数组中,并从成功调用中调用该函数

 // build an array to populate 
    var data = [];
    
    // create a function to push the value into array
    function hoistArrayReturn(arg){
     data.push(arg);
    } 
    
    // call function when data is retrieved
    $.ajax({
       ...
       success: function(msgy) {
         var day_data = JSON.parse(msgy);
         hoistArrayReturn(day_data); // will make it available outside the $.ajax call
        }
       ...
    });

这回答了你的问题吗?移动数据。推送(y);在您的成功处理程序中,如果我移动到成功处理程序浏览器没有响应,我将使用var data[]更新实时图形。然后我改变变量y;若变量y=50,则会更新图形中的50:(如果我移动到success handler browser时没有响应,我将使用var data[]更新live graph。然后我将var y更改为var y=50,它将更新图形中的50。:(由于您处于while循环中,请尝试在ajax调用更改中设置async:true,仍然相同。我正在尝试从数据库获取此图表的数据。)