Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 26

Фильтр по значению таблицы(расширенно)

14.02.2017, 10:42. Показов 849. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже предварительно задавал вопрос на форуме
Фильтр по значению таблицы

Теперь озадачен вопросом - что в случае если фильтров несколько и работать они должны одновременно.

имеется следующий код.В нем уже работает фильтр по первому полю.
http://codepen.io/makrauz/pen/dNaVjO

Если кто сможет помочь с кодом как работать несколько фильтров по таблице буду благодарен.Спасибо.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<table id="table">
<thead>
<tr>
<th style="width:150px">
<select name="select_name">
<option selected="selected" value="all">Все наименования</option>
<option value="1">Первый</option>
<option value="2">Второй</option>
<option value="3">Третий</option>
<option value="4">Четвертый</option>
</select>  
  </td>
<th style="width:100px"></td>
<th style="width:180px">
  <input name="Фильтр" type="text" placeholder="фильтр по примечанию">
  </th> 
<th style="width:180px">  
 <select name="select_menedjer">
<option selected="selected" value="all">МЕНЕДЖЕР</option>
<option value="1">Иванов</option>
<option value="2">Петров</option>
</select>   
  </th>
</tr>
</table>
 
 
<table id="table">
<thead>
<tr>
<th style="width:150px">Наименование</td>
<th style="width:100px">Количество</td>
<th style="width:180px">Примечание</td> 
<th style="width:150px">Менеджер</td>  
</tr>
</thead>
<tbody>
<tr>
<td>Первый</td>
<td>2</td>
<td>Первый номер</td> 
<td>Иванов</td>
</tr>
<tr>
<td>Второй</td>
<td>3</td>
<td>Первый номер</td>
<td>Петров</td>
</tr>
<tr>
<td>Третий</td>
<td>4</td>
<td>Третий номер</td> 
  <td>Иванов</td>
</tr>
<tr>
<td>Четвертый</td>
<td>5</td>
<td>Четвертый номер</td>  
  <td>Петров</td>
</tr>
</tbody>
</table>
JavaScript
1
2
3
4
5
6
7
8
9
10
var select = document.querySelector('select[name="select_name"]');
select.addEventListener("change", function(){
  var TRs = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
  for(var i=0; i<TRs.length; i++){
    TRs[i].style.display = i !== select.value-1 ? 'none' : null;
    if(select.value === 'all'){
      TRs[i].removeAttribute('style');
    }
  }
})
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2017, 10:42
Ответы с готовыми решениями:

Фильтр по значению таблицы
Добрый день. Есть следующая таблица и список. Нужно что бы при выборе в списке оставались только нужная строка с значением. Т.е. при...

Сделать фильтр по значению
пожалуйста, кому не трудно, объясните что должно быть внутри кавычек, adoquery.filter:='' есть таблица .mdb в которой есть колонка...

Фильтр по значению DateTimePicker
sourceship.Filter = &quot;Date_list like &quot; + dateTimePicker1.Value + &quot;%&quot;; this.shippingDataGridView.DataSource = sourceship; есть вот...

3
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
14.02.2017, 15:01
Makrauz,
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var table = [
  {name: 'Первый', amount: 2, annotation: 'Первый номер',  manager: 'Иванов'},
  {name: 'Второй', amount: 3, annotation: 'Первый номер',  manager: 'Петров'},
  {name: 'Третий', amount: 4, annotation: 'Третий номер',  manager: 'Иванов'},
  {name: 'Четвертый', amount: 5,   annotation: 'Четвертый номер',    manager: 'Петров'}
];
 
var tableDOM = document.querySelector('table tbody');
 
var table1 = [];
 
function createTD(value) {
  var td = document.createElement('TD');
  td.innerHTML = value;
  return td;
}
 
function createTR() {
  var tr = document.createElement('TR');
  return tr;
}
 
function renderTable(tableModel, tableDOM) {
  tableDOM.innerHTML = '';
  tableModel.forEach(function(row) {
    var tr = createTR();
    tr.appendChild(createTD(row.name));
    tr.appendChild(createTD(row.amount));
    tr.appendChild(createTD(row.annotation));
    tr.appendChild(createTD(row.manager));
    tableDOM.appendChild(tr);
  });
}
 
renderTable(table, tableDOM);
 
document.querySelector('input').addEventListener('input', function(e) {
  table1 = table.filter(function(item) {
  
    return item.name.toLocaleLowerCase().indexOf(e.target.value.trim()) >= 0;
  });
  renderTable(table1, tableDOM);
});
 
document.querySelector('select').addEventListener('change', function(e) {
  table1 = table.sort(function(a, b) {
    if (e.target.value === 'asc') return a.amount > b.amount;
    if (e.target.value === 'desc') return a.amount < b.amount;
  });
  renderTable(table1, tableDOM);
});
https://jsfiddle.net/haofnmq8/2/
1
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 26
14.02.2017, 17:28  [ТС]
Немножко некорректно сформулировал задачу.
Сортировка не нужна.
Нужен фильтр как здесь
http://codepen.io/makrauz/pen/dNaVjO

В расширенном варианте нужно что фильтрация работа и по текстовому полю и по списку в 4 колонке.
Т.е. пользователь мог наложить два- три фильтра одновременно.
Выборку таблицы и по пользователю и по наименованию одновременно.

Добавлено через 8 минут
Вот примерно то что хотелось бы.
Но тут фильтрация только по спискам без текстового поля.
http://codepen.io/gabyferman/pen/EaXVVM

Добавлено через 2 часа 14 минут
Решил вопрос с помощью этого скрипта.
http://www.javascriptkit.com/s... lter.shtml

Вопрос закрыт
0
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
14.02.2017, 18:19
Makrauz, я не совсем об этом, эти вещи можно производить и без тяжелых библиотек, но самое важное это наличие какой-то модели данных над которой можно производить различные действия вроде сортировки, редактирования записей или фильтрации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2017, 18:19
Помогаю со студенческими работами здесь

Фильтр по значению из XML
Имеется документ в формате XML, примерно такого вида: &lt;?xml version=&quot;1.0&quot; standalone=&quot;yes&quot;?&gt; &lt;DataSetStudents&gt; ...

Создать фильтр по значению ячейки
Всем привет! Как в MS Office Excel реализовать фильтр по значению ячейки. покажу на картинках что я имею ввиду. Имеется программа со...

Фильтр в запросе по значению реквизита
Доброго дня! Подскажите пожалуйста, задача такова: есть 3 различные ТЧ в документе, которые скрываются (либо нет) в зависимости от...

Фильтр по значению столбца int
Значение вводится в Edit и при нажатии кнопки должен осуществляться поиск, с таким кодом для кнопки получаю сообщение void __fastcall...

Фильтр по значению подчиненной формы
Доброго времени суток! Можно ли отфильтровать значения основной формы по значению подчиненной? Голову уже сломал. С VBA не знаком. ((


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru