@MaximIs

Как установить фильтр для таблицы?

Добрый день, во view вывел итоговую таблицу со всеми данными, теперь необходимо добавить фильтры оформленные в виде:
<select>
 <option value="blabla">blabla</option>
</select>

Как мне запомнить выбранный итем и на основе него вывести таблицу? Спасибо, понимаю, что никаких точностей не дал, поэтому прошу примерный вариант.
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kttotto
пофиг на чем писать
Все зависит от количества данных. Если в таблице вывел все что есть, то обходишься без запросов на сервер, все делаешь js-ом.
Есть два варианта. Если это spa, тогда на каждый селект вешаешь обработчик с запросом на сервер, в запросе передаешь параметры фильтра. В ответе получаешь отфильтрованные данные и переписываешь таблицу на клиенте. Что-то подобие
$(".selectParam").change(function(){
	var param = {
		// Заносишь сюда все, что в селектах выбрано
	}
	$.ajax{
		data: param,
		success: function(data){
			// отрисовать таблицу с новыми данными
		}
	}
}

Можно также таблицу сделать в частичном представлении и тогда ее можно переписывать не на клиенте, а делать запрос на сервер, который будет возвращать уже html с таблицей и тогда ее надо будет только вставить
success: function(data){
			$("#mytable).html(data);
		}

Если не spa, то параметры селектов (фильтра) отправлять через форму по кнопке "фильтровать" и в ответ с сервера получать новую страницу с новыми отфильтрованными данными в таблице.
Ответ написан
Комментировать
be_a_dancer
@be_a_dancer
Backend/Fullstack Developer
Ух. Ты уже ползешь в сферу фронтенда.
То, что ты хочешь сделать, осуществимо, пожалуй, двумя способами: либо через сервер, либо через фронтенд-скрипт. Но это, в любом случае, не для новичка.
Если интересно. Вот (раздел Wire up a Backend, отмотай чуть ниже. Справа JavaScript projects) реализация подобного фильтра (на другой основе, но принцип тот же) на angular. На бэкэнде все несколько проще - ты изменяешь значение фильтра и отправляешь запрос на сервер, где формируется новая статичная таблица на основе этого фильтра. Параметр можно передать, для простоты, get-запросом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 22:03
3000 руб./за проект
23 нояб. 2024, в 21:53
30000 руб./за проект
23 нояб. 2024, в 21:49
1000 руб./в час