Не удается получить элемент из массива с использованием XMLHttpRequest - PullRequest
0 голосов
/ 11 апреля 2019

Невозможно получить доступ к элементам в массиве из XMLHttpRequest.

У меня есть функция findProductDetails, где я передаю productName, который является первичным ключом в моей базе данных. Я использую XMLHttpRequest для получения массива через ответ из productSearch.php. Я могу напечатать itemsList идеально внутри цикла for. Но я попытался вернуть массив, и я могу напечатать его на консоли, и он покажет, что он имеет длину 0, и я могу видеть элементы, но не могу получить их по отдельности как массив [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 голосов
/ 12 апреля 2019

Мое решение:

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
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...