Хорошо, во-первых, у вас есть for
l oop, который меняет класс элемента на «активный», мы продолжим добавлять код туда.
var iconContainer = document.getElementById('iconContainer');
var icon = iconContainer.getElementsByClassName("item");
for (var i = 0; i < icon.length; i++) {
icon[i].addEventListener("click", function() {
var current = document.getElementsByClassName("active");
current[0].className = current[0].className.replace(" active", "");
this.className += " active";
// ADD CODE HERE
});
}
Вам нужно будет сделать 2 вещи : получить значение выбранного элемента и отправить его на сервер, выполнив запрос на поиск со значением в качестве параметров.
Получить значение выбранного элемента, получив значение innerText:
...
// ADD CODE HERE
var value = this.getElementsByTagName("span")[0].innerText;
И сделать запрос get со значением с помощью fetch
API (или любых библиотек, которые поддерживают make xhr request):
...
// ADD CODE HERE
var value = this.getElementsByTagName("span")[0].innerText;
fetch(`URL_TO_SERVER/?params=${value}`)
.then(res => {
// do what you want with search result
}
Остальное - работа вашего сервера по обработке запроса, принятию параметров, поиску в соответствующем файле. и вернуть результат поиска клиенту.
Вот и все.
В лучшем случае, вместо использования значения из innerText
в качестве параметра, вы должны использовать data-attribute
для лучшего запроса. Вы можете прочитать здесь: https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes