Добавить фильтр по списку на Yii для поиска

Задание закрыто
Стоимость:Договорная
Срок выполнения:5 дней
Варианты оплаты:По договоренности
Дата публикации:2024-09-25 19:31
Был(а) на сайте:2024-09-27 12:21

Добавить фильтр по списку на Yii для поиска

 
Задача


создать фильтр - поиск, по списку объектов, в виде окошка над списком.
Фильтр по полям: описание трекера, название и позывной.
при вводе символов, убирать не соответствующие объекты снизу

тестовый сайт http://z35389.adman.cloud/gps/
логин 2239, пароль 2239

Оставлять заявки могут только авторизованные пользователи.
Станислав Гулевич
Специализация: Тексты
  • 12 000 руб5 дней
Шаги для добавления поиска:
Создать форму фильтра: Вставить элемент формы с полем поиска над списком трекеров.

Добавить AJAX фильтрацию: Сделать так, чтобы при вводе символов происходила отправка запроса на сервер для фильтрации объектов.

Пример кода:
Вид (view):

<!-- Поиск трекеров -->
<div class="tracker-filter">
<input type="text" id="tracker-search" placeholder="Поиск по названию, позывному, ID">
</div>

<!-- Список трекеров -->
<div id="tracker-list">
<?php foreach ($trackers as $tracker): ?>
<div class="tracker-item" data-id="<?= $tracker->id ?>" data-name="<?= $tracker->name ?>" data-callsign="<?= $tracker->callsign ?>">
<p>ID: <?= $tracker->id ?></p>
<p>Название: <?= $tracker->name ?></p>
<p>Позывной: <?= $tracker->callsign ?></p>
</div>
<?php endforeach; ?>
</div>
AJAX-скрипт для фильтрации:

$('#tracker-search').on('input', function() {
let searchValue = $(this).val().toLowerCase();

$('#tracker-list .tracker-item').each(function() {
let name = $(this).data('name').toLowerCase();
let callsign = $(this).data('callsign').toLowerCase();
let id = $(this).data('id').toString();

if (name.includes(searchValue) || callsign.includes(searchValue) || id.includes(searchValue)) {
$(this).show();
} else {
$(this).hide();
}
});
});
Контроллер (Controller): В случае если нужна фильтрация на стороне сервера, можно использовать следующий код в контроллере:

public function actionIndex() {
$search = Yii::$app->request->get('search');
$query = Tracker::find();

if ($search) {
$query->andFilterWhere(['like', 'name', $search])
->orFilterWhere(['like', 'callsign', $search])
->orFilterWhere(['id' => $search]);
}

$trackers = $query->all();

return $this->render('index', [
'trackers' => $trackers,
]);
}
Александр Энд

Мастер PHP

Специализация: Веб-разработка
  • 1 000 руб1 день
Нужно смотреть исходники сайта
Takeda Daicha
Специализация: Программирование и IT
  • 10 руб5 дней
Привет, имею большой опыт в разработке скриптов, сайтов, парсеров и просто програм на python, одним словом пишу всо, также пишу приложения на Андроид, с удовольствием возьмусь за работу, сделаю всо в лучшем виде и в кратчайшие сроки, также помогу запустить и разобраться.

Мое портфолио: https://ochistka35.wixsite.com/daichasportfolio
Мой телеграм: https://t.me/daichitakeda
Василий Авдеев

Если не продает, то зачем делать?

Специализация: Веб-разработка
  • 123 руб5 дней
Приветствую! Я менеджер компании AV Studio ( https://avdeevstudio.ru/?utm_source=frelanc )

Мы более 16 лет на рынке.
У нас есть Дизайнера, Верстальщики и Программисты. Готовы выполнить ваш заказ!

Примеры наших работ:
https://eldorado.ru/
https://30.interfax.ru/
https://a-rostagrokomplex.ru/
https://cs.money/
https://scopuly.com/

Почему мы?
- К каждому проекту прикрепляем маркетолога (т.к. сайт в первую очередь должен выполнять свою бизнес-цель)
- Даем гарантию до года на нашу работы
- Сильная команда 70+ человек
У нас есть опыт разработки как крупных проектов (10 человек фуллтайм) так и мелких (несколько часов в неделю)

Наши клиенты:
Ашан, Eldorado, Softline, Интерфакс, МоскваСити, Ростагрокомплекс и т.д.

Давайте обсудим детали в Телеграм: https://t.me/Avdeev_Vasiliy
Евгений Голубев

Пока они думают - я делаю

Специализация: Веб-разработка
  • 123 руб5 дней
Приветствую!
Ознакомился с Вашим проектом.
С удовольствием выполню эту задачу.

МОИ КОНТАКТЫ:

WhatsApp | https://wa.me/79647133553
Telegram | https://t.me/divside
Работы по сайтам | https://www.behance.net/divside


*** Цена в заявке номинальная. Точная цена после обсуждения. При обращении прошу высылать ссылку на проект ***
Василий С

разработчик веб-приложений

Специализация: Программирование и IT
  • 8 600 руб5 дней
Здравствуйте.
Сделаю.

Оставлять заявки могут только авторизованные пользователи.