2016-05-13 5 views
0

Я пытаюсь добавить к datalist с помощью AJAX. На веб-странице, на которую я запрашиваю, есть только имена городов по каждой из них. Я в принципе есть:Использование AJAX для создания datalist

(function() { 
"use strict"; 

    window.onload = function() { 
     fetch("cities"); 
    }; 

    function fetch(mode) { 
     var request = new XMLHttpRequest(); 
     request.onload = getCities(); 
     request.open("GET", "https://weather.com/weather/mode=" + mode, true); 
     request.send(); 
    } 

    function getCities() { 
     //loop while there's data/string to grab { 
      var city = document.createElement("option"); 
      city.innerHTML = this.responseText; //set the option as the name of the city from the request 
      document.getElementById("cities").appendChild(city); 
     } 
    } 
})(); 

Веб-страница является просто наполнитель для веб-страницы, которые я использую на сервере, но я пытаюсь создать новый вариант тег для каждой строки и добавить его к DataList в моей html, но у меня проблема с чем-то поймать. По какой-то причине я просто получаю неопределенную ошибку. Извините, я вроде как новичок в javascript и AJAX.

веб-страница макет страницы запроса:

Абиджан Аккра Адана Аддис Абеба Ахмедабад Халеб Александрия Алджер Алматы Анкара Аньшань Багдад Баку Бандунг Бангалор Бангкок

+0

Не должно быть 'request.send();'? – paulvs

+0

ahh, который может быть проблемой –

+0

исправил это, но я все равно получаю ту же ошибку –

ответ

0

Вы упускаете кронштейны () от вашей функции вызывает

(function() { 
    "use strict"; 

    window.onload = function() { 
     fetch("cities"); 
    }; 

    function fetch(mode) { 
     var request = new XMLHttpRequest(); 
     request.onload = getCities();  // <- brackets missing here 
     request.open("GET", "https://weather.com/weather/mode=" + mode, true); 
     request.send();     // <- and here 
    } 

    function getCities() { 
     var city = document.createElement("option"); 
     document.getElementById("cities").innerHTML = this.responseText; 
    } 
})(); 

Это также очень неясно мне, как предполагается, ваша getCities функция работать. Вы создаете набор параметров, но не добавляете его в свой DOM. Я также не уверен, что должно быть this.responseText.

+0

Это еще не закончено, потому что я не был уверен, что я получаю от возврата запроса. Я хочу, чтобы итерация с помощью цикла, и каждая итерация создала новый тег параметра, содержащий имя города во внутреннем html, а затем добавляет его к моему каталогу данных, но я не получил этого, потому что я все время сталкиваюсь с проблемой. –

+0

на веб-странице я запрашивающий просто есть: Абиджан Аккре Адане Аддис Абеба Ахмедабад Халеб Александрия Алджер Алматы Анкара Аньшань Багдад Баку Бандунг Бангалор Бангкок и я пытаясь добавить каждый из них в качестве опции в моем datalist. –

+0

Я отредактировал его, чтобы отразить то, что я пытаюсь сделать –