我的代码有一个小问题。基本上,我的index.html文件中有一个表单:
第1页上的表格如下:
<form method="get" name="basicSearch" id = "basicSearch" action="page2.html">
<input name="location" type="text" class="BasicSearch" id="searchInput" placeholder="Location">
<button type= "submit" class="BasicSearch" id="searchBtn" placeholder="Search"></button>
</form>
对于此表单,我想使用OpenWeatherMap API来获取一些天气数据。我的问题如下:我想获取用户在表单中输入的内容,例如,我认为我可以使用它获取:
var searchInput = document.getElementById("searchInput");
在此变量中,我可以存储位置。而这个变量,我想在JavaScript代码中附加到确实从API提取数据的链接。当用户输入例如:New York,然后按Search时,表单操作应将他重定向到page2.html,在那里我可以显示天气数据。
如何从第1页输入位置信息,在第2页中显示天气数据?我尝试了很多次,但是没有运气。下面是一些Javascript代码:
let units = 'metric';
let searchMethod = 'q';
let searchButton = document.getElementById("searchBtn");
let searchInput = document.getElementById("searchInput");
if (searchButton) {
searchButton.addEventListener('click', () => {
let searchTerm = searchInput.value;
if (searchTerm)
searchWeather(searchTerm);
});
}
function searchWeather(searchTerm) {
fetch(`http://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${appId}&units=${units}`).then(result => {
return result.json();
}).then(result => {
init(result);
})
}
function init(resultFromServer){
let weatherDescriptionHeader = document.getElementById('weatherDescriptionHeader');
let temperatureElement = document.getElementById('temperature');
let humidityElement = document.getElementById('humidity');
let windSpeedElement = document.getElementById('windSpeed');
let cityHeader = document.getElementById('cityHeader');
let weatherIcon = document.getElementById('documentIconImg');
weatherIcon.src = 'http://openweathermap.org/img/w/' + resultFromServer.weather[0].icon + '.png';
let resultDescription = resultFromServer.weather[0].description;
weatherDescriptionHeader.innerText = resultDescription.charAt(0).toUpperCase() + resultDescription.slice(1);
我希望在div所在的第2页中有天气数据。有人可以给我个建议吗?谢谢!
湖上湖
守着星空守着你
相关分类