TableStor захватывает исходные данные после моего выпадающего фильтра - PullRequest
0 голосов
/ 10 октября 2018

У меня есть таблица с несколькими строками, которую можно отсортировать с помощью tableorter.

<tbody id='filterTicket_body'>
 <tr><td>Field 1 Row 1</td><td>Field 2 Row 1</td><td>Field 3 Row 1</td></tr>
 <tr><td>Field 1 Row 2</td><td>Field 2 Row 2</td><td>Field 3 Row 2</td></tr>
 <tr><td>Field 1 Row 3</td><td>Field 2 Row 3</td><td>Field 3 Row 3</td></tr>
</tbody>

На той же странице у меня есть раскрывающийся список, который пользователь может фильтровать строки.этот выпадающий вызов ajax-вызову db, чтобы получить только результаты, основанные на фильтре.Я очищаю #filterTicket_body, а затем заменяю его результатами.

        $('body').on('change','#ticketFilter',function(){
            var val = $(this).val();
            $('#filterTicket_body').html('');
            $.ajax({
                    type:"POST",
                    url:"support/ticketFilter.php",
                    data:"filter="+val,
                    success:function(result){
                            $('#filterTicket_body').html(result);
                    }
            });

    });

Примером результата будет просто строка таблицы.

 <tr><td>Field 1 Row 2</td><td>Field 2 Row 2</td><td>Field 3 Row 3</td></tR>

Предположим, пользователь выбрал «Строка 2»,Этот фильтр заменит #filterTicket_body с 1 строкой данных.Пока все хорошо.

Теперь, когда пользователь щелкает заголовок таблицы для сортировки, используя сортировщик таблиц по умолчанию, к результатам добавляются исходные 3 строки данных.так что я в конечном итоге с

Row 2
Row 1
Row 2
Row 3

какие-нибудь мысли?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Лучше обновить внутренний кеш таблиц, вызывая событие обновления:

success:function(result){
    $('#filterTicket_body')
         .html(result)
         .trigger('update');
}
0 голосов
/ 10 октября 2018

Решением здесь было уничтожить событие tableorter и воссоздать его после успешного вызова ajax.

...