Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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中全局数组的设置值 $(文档).ready(函数(){ var currray=null; var组=null; var admin=null; var设备=空; var student=null; log(“获取阵列信息后”); 对于(var i=0;i_Javascript_Jquery_Arrays - Fatal编程技术网

javascript中全局数组的设置值 $(文档).ready(函数(){ var currray=null; var组=null; var admin=null; var设备=空; var student=null; log(“获取阵列信息后”); 对于(var i=0;i

javascript中全局数组的设置值 $(文档).ready(函数(){ var currray=null; var组=null; var admin=null; var设备=空; var student=null; log(“获取阵列信息后”); 对于(var i=0;i,javascript,jquery,arrays,Javascript,Jquery,Arrays,问题在于$。post是异步的(请参阅)。因此,当脚本尝试访问设备变量时,该变量尚未初始化。您可能希望将代码放入$。post回调中: $(document).ready(function(){ var currArray=null; var group=null; var admin=null; var equipment=null; var student=null; console.log("after get array info"); for(var i=0; i<equipment

问题在于
$。post
是异步的(请参阅)。因此,当脚本尝试访问
设备
变量时,该变量尚未初始化。您可能希望将代码放入
$。post
回调中:

$(document).ready(function(){
var currArray=null;
var group=null;
var admin=null;
var equipment=null;
var student=null;
console.log("after get array info");
for(var i=0; i<equipment.length; i++)
{
    console.log("equipment at index after get array info: "+i+" val: "+equipment[i]);
}
setArray();

console.log("finished initial");
function getArrayInformation()
{
    console.log("Get array information");
    //equipment=new Array("Item ID", "Model", "Series", "Manufacturer");
    $.post("Search", function(response)
            {
                console.log("back from Search AJAX");
                $.each(response, function(index, val)
                        {
                            console.log("index of .each for Search AJAX response: "+index+" value of this: "+val);
                            jsonParse(index, val);
                        });
            });
}
function jsonParse(index, val)
{
    if(index == "equipment")
        {
            console.log("setting equipment array");
            equipment = val.split(",");
            console.log("equipment array after creating it");
            for(var i=0; i<equipment.length; i++)
            {
                console.log("equipment at index: "+i+" val: "+equipment[i]);
            }
        }
    else if(index == "student")
        {
            student = val.split(",");
        }
    else if(index == "group")
    {
        group = val.split(",");
    }
    else if(index == "admin")
    {
        admin = val.split(",");
    }

}
$.post(“搜索”),功能(响应){
log(“从搜索AJAX返回”);
$。每个(响应、函数(索引、val){
log(“每个搜索AJAX响应的索引:“+index+”此值:“+val”);
jsonParse(索引,val);
//下面是您的代码

对于(var i=0;i
equipment.length
将通过一个错误,因为它为空。这是
setArray
函数的哪里?这是最常见的javascript问题之一的副本。我将去看看是否可以找到最常见的问题,将其标记为dup of。Ajax调用在
getArrayInformation()之后很长一段时间后完成
returns。使用返回数据的唯一位置是成功处理程序或从那里调用的函数中,因为此时您才知道数据确实在那里。setArray在代码中的位置较低,但我觉得它与此问题不太相关。哦,对了,我完全忘了AJAX是异步的!Doh!谢谢!
$.post("Search", function(response) {
  console.log("back from Search AJAX");
  $.each(response, function(index, val) {
    console.log("index of .each for Search AJAX response: "+index+" value of this: "+val);
    jsonParse(index, val);

    // Your code below
    for(var i=0; i<equipment.length; i++) {
      console.log("equipment at index after get array info: "+i+" val: "+equipment[i]);
    }
  });
});