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

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

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

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

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

имеется следующий код.В нем уже работает фильтр по первому полю.
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2017, 10:42
Ответы с готовыми решениями:

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

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

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

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

3
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
14.02.2017, 15:01 2
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  [ТС] 3
Немножко некорректно сформулировал задачу.
Сортировка не нужна.
Нужен фильтр как здесь
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
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
14.02.2017, 18:19 4
Makrauz, я не совсем об этом, эти вещи можно производить и без тяжелых библиотек, но самое важное это наличие какой-то модели данных над которой можно производить различные действия вроде сортировки, редактирования записей или фильтрации.
0
14.02.2017, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2017, 18:19
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru