|
@@ -0,0 +1,39 @@
|
|
|
+# XMLHttpRequest ДЗ
|
|
|
+
|
|
|
+## Города-страны
|
|
|
+
|
|
|
+Загрузить, используя AJAX JSON со странами и городами: [JSON](https://raw.githubusercontent.com/David-Haim/CountriesToCitiesJSON/master/countriesToCities.json)
|
|
|
+Создать два выпадающих списка (`<select>`), один со странами, второй с городами для текущей выбранной страны. При изменении страны
|
|
|
+список городов должен обновляться.
|
|
|
+
|
|
|
+Доделать
|
|
|
+
|
|
|
+## Weather
|
|
|
+Сделайте возможность узнать погоду, используя код предыдущего задания и [Yahoo Weahter API](https://developer.yahoo.com/weather/)
|
|
|
+Для получения погоды по городу используйте YQL запрос
|
|
|
+
|
|
|
+```
|
|
|
+select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="CITYNAME") and u='c'
|
|
|
+```
|
|
|
+где **CITYNAME** - имя города, выбранного пользователем
|
|
|
+
|
|
|
+Конечная точка (URL-адрес), описан в **Yahoo Weather API**:
|
|
|
+
|
|
|
+```
|
|
|
+https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22kharkiv%22)%20and%20u%3D'c'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys
|
|
|
+```
|
|
|
+В качестве параметра q идет YQL запрос, например, указанный выше. Для получения погоды нужно:
|
|
|
+- узнать строку с городом
|
|
|
+- сформировать YQL-запрос с этим городом (подменить CITYNAME на имя города)
|
|
|
+- сделать запрос, в котором параметром `q` будет ваш YQL запрос.
|
|
|
+- Для кодирования строки в параметр URI используйте функцию `encodeURIComponent`
|
|
|
+
|
|
|
+Для передачи параметров в GET используйте:
|
|
|
+
|
|
|
+```javascript
|
|
|
+...
|
|
|
+ request.open('GET', "https://query.yahooapis.com/v1/public/yql?" + 'q=' + encodeURIComponent("YQL-ЗАПРОС-С-ПРАВИЛЬНЫМ-ГОРОДОМ") + '&format=json'}, true)
|
|
|
+...
|
|
|
+```
|
|
|
+
|
|
|
+После получения данных выведите их в наглядном виде, используя возможности DOM. Например можете сделать что-то типа погодного виджета/информера.
|