Я создаю веб-приложение для недвижимости. Я собираюсь закончить sh это, но я застрял на этой последней вещи. Я добавил панель поиска на своей домашней странице, которая позволяет пользователю фильтровать свойства по городу, аренде / продаже, минимальным комнатам / максимальным комнатам, минимальной цене и максимальной цене. Мне интересно, почему панель поиска не работает? Это моя строка поиска:
<!-- Search Section -->
<form class="col s8 l1" onsubmit="filteredPrices(li)">
<div class="row">
<div class="input-field col s4 l2">
<select class="all-cities">
<option value="">Choose...</option>
<option value="1">Adana</option>
<option value="2">Adıyaman</option>
<option value="3">Afyonkarahisar</option>
<option value="4">Ağrı</option>
</select>
</div>
<div class="input-field col s4 l2">
<select class="rent-sale" >
<option value="0">Type</option>
<option value="Rent">Rent</option>
<option value="Sale">Sale</option>
</select>
</div>
<div class="input-field col s5 l2">
<select class="min-rooms">
<option value="0">Min Rooms</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div>
<div class="input-field col s5 l2">
<select class="max-rooms">
<option value="0">Max Rooms</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div>
<div class="input-field col s4 l2">
<input type="text" id="min" placeholder="Min price $">
</div>
<div class="input-field col s4 l2">
<input type="text" id="max" placeholder="Max price $">
</div>
</div>
<button class="btn waves-effect indigo right" type="submit">Search
<i class="material-icons right">send</i>
</button>
</form><!-- ./Search Section -->
И вот где я добавляю свойства из облачного пожарного магазина на мою домашнюю страницу:
const setupProp = data => {
let html = '';
data.forEach(doc => {
const info = doc.data();
let li = `
<div class="col s12 l4 items">
<div class="card" style="height: 407px;">
<div class="card-image">
<a href="property.html?${doc.id}">
<img src="${info.image[0]}" style="height: 228px;"></a>
<a class="btn-floating halfway-fab waves-effect waves-light red center status">${info.type}</a>
</div>
<div class="card-content">
<span><b class="house-title">${info.title}</b></span><br>
<span><b class="blue-text price">${info.price}</b> $</span><br>
<span class="material-icons blue-text">room</span>
<span><b class="city">${info.city}</b></span><br>
<span class="material-icons blue-text">single_bed</span>
<span><b class="rooms">${info.rooms}</b> rooms</span>
</div>
</div>
</div>
`;
filteredPrices(li)
html += li
showingProp.innerHTML = html;
})
}
И, наконец, вот мой js поиск код:
const filteredPrices = li => {
const searchMin = Number(document.getElementById('min').value); // Min price search tap
const searchMax = Number(document.getElementById('max').value); // Max price search tap
const rentSale = document.querySelector('.rent-sale').value; // Rent/Sale search tap
const allCities = document.querySelector('.all-cities').value; // City search tap
const minRooms = document.querySelector('.min-rooms').value; // Min rooms search tap
const maxRooms = document.querySelector('.max-rooms').value; // Max rooms search tap
const str = li;
const temp = document.createElement('div');
temp.innerHTML = str;
// console.log(temp)
const items = temp.querySelectorAll('.items');
items.forEach(item => {
const price = Number(item.querySelector('.price').textContent);
const status = item.querySelector('.status').textContent;
const city = item.querySelector('.city').textContent;
const rooms = Number(item.querySelector('.rooms').textContent);
if (price < searchMin || price > searchMax || rentSale !== status || allCities !== city
|| rooms < minRooms || rooms > maxRooms) {
item.style.display = 'none';
// document.querySelector('.error').style.display = "block";
} else
item.style.display = 'block';
})
}