无法使用XMLHttpRequest从数组中检索元素

时间:2019-04-11 13:59:06

标签: javascript php xmlhttprequest

无法从XMLHttpRequest访问数组中的元素。

我有一个名为findProductDetails的函数,我在其中传递了productName,它是数据库中的主键。我使用XMLHttpRequest通过productSearch.php的响应来检索数组。我可以在for循环中完美地打印itemsList。但是我尝试返回该数组,我可以将其打印到控制台,它将显示它的长度为0,并且可以看到这些元素,但是无法将它们分别作为array [n]进行检索。

 function findProductDetails(productName){
      //Store results      
      var array = []

      xmlhttp=new XMLHttpRequest();
      xmlhttp.onreadystatechange=function() {

           if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                if (xmlhttp.responseText) {
                    var itemsList = xmlhttp.responseText.split(",");
                    for(var i = 0; i < itemsList.length; i++) {
                        array[i] = itemsList[i];
                    }        
                }
           }
      }

      xmlhttp.open("GET","productSearch.php?name=" + productName,true);
      xmlhttp.send();

      return array;
  }

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

我的解决方案:

function request(method, url) {
     return new Promise(function (resolve, reject) {
           var xhr = new XMLHttpRequest();
           xhr.open(method, url);
           xhr.onload = resolve;
           xhr.onerror = reject;
           xhr.send();
     });
}

然后,每当我想通过回显结果通过php文件从数据库中检索数据时,都会调用此名称。

 request("GET", "productSearch.php?name=" + productName,true)
       .then(function (e) {
            //Results      
            var res = e.target.response;

        }, function (e) {
          // handle errors
    });