Как создать панель поиска, как на YouTube или многих других сайтах, которые выполняют поиск в базе данных и отображают только несколько результатов, накладывающихся на остальную часть сайта.
Я уже искал в Google и YouTube учебники и некоторую помощь по поиску в базе данных, а другие - как создать панель поиска. Но по какой-то причине я не могу найти тот, который поможет мне понять, как отображать элементы в раскрывающемся списке, который перекрывает остальную часть страницы и не смещает содержимое. Я также попробовал вас показать CSS: нет; но как только это будет установлено для отображения: блок; например, с помощью javascript содержимое смещается. Заранее спасибо.
Я пытался использовать этот javascript для таблицы:
function search() {
var input, filter, found, table, tr, td, i, j;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
table.style.display = "block";
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td");
for (j = 0; j < td.length; j++) {
if (td[j].innerHTML.toUpperCase().indexOf(filter) > -1) {
found = true;
}
}
if (found) {
tr[i].style.display = "";
found = false;
} else if (!tr[i].id.match('^tableHeader')) {
tr[i].style.display = "none";
}
}
}
и мой HTML выглядит следующим образом:
<table id="myTable">
<tr>
{% for key, value in list.items() %}
<td>{{ key|e }</td>
<td id="name">{{ value|e }}</td>
<td>
<form class="form-signin ajax" action="/signIn" method="post" data-replace="#res" role="form">
<input type="checkbox" name="watchlist" value="Watchlist" onclick="writeToCell (this.id)" id="{{ key|e }}">
</form>
</td>
</tr>
{% endfor %}
</table>
Я использую Flask Framework и Python.
Используя display: none;
в CSS при загрузке, вы не можете видеть таблицу, а тег h2 находится прямо под ней.
intial
Но когда вы начинаете печатать, таблица смещает тег h2 и остается на экране, даже если он не выбран в строке поиска.
после поиска
Мне бы хотелось, чтобы результаты (из базы данных SQL) появлялись только при поиске чего-либо и не смещали другие элементы. Спасибо.