Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2023, 16:42
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Помогите допилить поиск в datatble js
Всем доброго дня!
Помогите плиз - пытаюсь запилить поиск в datatable

Вот что делаю

$('#example').DataTable({
			initComplete: function () {
            // Apply the search
            this.api()
                .columns()
                .every(function () {
                    var that = this;
$('#tablefiltsubmit').on('click', function() {

var dataotcol = that.columns(0);
var datadocol = that.columns(1);
	var dataotval = document.querySelector('#dataot').value;
	var datadoval = document.querySelector('#datado').value;
	var typeval = document.querySelector('#typeoper').value;
	var cityval = document.querySelector('#citys').value;


                        if (dataotcol) {
							//console.log(that.column);
                            dataotcol.search(dataotval).draw();

 datadocol.search(datadoval).draw();
}

                    });
                });
}
});


Это работает но очень долго - я так понимаю он мне кучу раз перерисовывает таблицу сначала каждый столбец потом еще раз первый и второй чтобы поискать и если передаваемые значения будут пустые - это все так же очень долго происходит... Учитывая что в таблице несколько десятков тысяч записей - это печально!

Подскажите плиз - как сделать правильно ?
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2023, 17:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

firsmember,
по клику надо сделать обход колонок, а не на оборот.
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2023, 17:07
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Если бы я понимал - что делаю не так не спрашивал бы)
Не понимаю что не то (((
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2023, 17:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

firsmember,
могу только гадать, вам лучше почитать документацию, возможно в примерах есть, то что вы ищите.
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2023, 17:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

firsmember,
условно должно быть как-то так ...
$('#example').DataTable({
                    initComplete: function() {
                        $('#tablefiltsubmit').on('click', function() {
                            var table = $('#example').DataTable();
                            var dataotval = document.querySelector('#dataot').value;
                            var datadoval = document.querySelector('#datado').value;
                            var typeval = document.querySelector('#typeoper').value;
                            var cityval = document.querySelector('#citys').value;
                            var ar = [dataotval, datadoval, typeval, cityval];
                            for (let i = 0; i < ar.length; i++) {
                                if (ar[i]) table = table.column(i).search(ar[i])
                            }
                            table.draw();
                        });
                    }
                })

Последний раз редактировалось рони, 14.01.2023 в 17:50.
Ответить с цитированием
  #6 (permalink)  
Старый 14.01.2023, 17:45
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Верно - есть такой пример https://datatables.net/examples/api/regex.html
Но я не понимаю как сделать отправку всех полей в соответствующие колонки при клике по кнопке - применить - а не при изменении поля
Ответить с цитированием
  #7 (permalink)  
Старый 14.01.2023, 17:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

firsmember,
смотрите код выше, немного исправил.
Ответить с цитированием
  #8 (permalink)  
Старый 14.01.2023, 17:53
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Извините - но не понимаю - где у вас указывается по какой колонке - какое из полей ищет ?
потому что работает отлично и быстро - но вот некоторые значения не в те колонки прописались

Последний раз редактировалось firsmember, 14.01.2023 в 17:56.
Ответить с цитированием
  #9 (permalink)  
Старый 14.01.2023, 17:57
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

Может давайте поисковым полям атрибут назначим с номером колонки тогда от 0 и т.д. ? Подскажите?
Ответить с цитированием
  #10 (permalink)  
Старый 14.01.2023, 18:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от firsmember
где у вас указывается по какой колонке - какое из полей ищет ?
строка 9, либо измените порядок, либо добавьте колонки, в которых не надо искать.

Последний раз редактировалось рони, 14.01.2023 в 18:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возникла проблема с анимацией кнопки после внедрения js кода! Помогите пожалуйста. DobrovolskyDen (X)HTML/CSS 0 08.05.2018 21:48
Как организовать поиск по csv на js Vlad777 Общие вопросы Javascript 2 03.03.2018 12:35
Помогите вынести js в отдельный скрипт pozitiv4ek Events/DOM/Window 9 15.01.2018 10:48
Конфликт js скриптов помогите решить. leo83 Общие вопросы Javascript 11 26.05.2017 11:01
помогите написать аналог строки include("index.php?open=1") на js bushstas Общие вопросы Javascript 1 19.07.2009 02:48