Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2016, 12:48
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Сортировка в подгружаемой таблице
Таблица с данными формируется php-скриптом и аяксом подгружается в другой php-скрипт, который отображает ее на странице. Решил сделать сортировку в таблице при помощи Simple Table Sorter
Столкнулся с тем, что скрипт сортировки не работает, видимо, это связано с тем, что табличка подгружается динамически и изначально как DOM-объект в результирующем файле не существует. Т.к. опыта в javascript катастрофически мало, то самостоятельно разобраться и использовать вариант решения, который предлагается автором скрипта сортировки (по ссылке выше) не удалось. Прошу помощи. Прилагаю свои php-файлы: admin_view_events.php - результирующий файл, admin_logs_req.php - подгружает табличку.
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2016, 13:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

wfire,
загрузили таблицу, нашли таблицу, присвоили класс, запустили плагин для таблицы.
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2016, 13:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

wfire,
function Hide_Load()
 {
    $("#loading").fadeOut('slow');
    var table = $("#admin_logs table");
    if(table.length) {
       table.addClass("sortable");
       prepTabs(table[0]);
    }

 };
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2016, 13:48
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

У него там через ж сделано методом научного самотыка. Таблица подгружается в див с ид "admin_logs", а ТС немедленно создает жабой еще одну пустую таблицу и пытается ее отсортировать.

Короче, надо просто добавить в каждый .load() код инициализации объекта, то есть в конце всей каши дописать - prepTabs($('.sortable'));

А тот код создания пустой таблицы выпилить.

ЗЫ После загрузки новой таблицы последствия prepTabs() должны сдохнуть по идее. То есть после каждой загрузки надо его заново натравливать. Или сделать по-человечески, то есть на страницу выдавать <table>, а подгружать только строки и вставлять их в tbody

Последний раз редактировалось warren buffet, 17.08.2016 в 13:56.
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2016, 14:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

wfire,
на всякий случай
Сообщение от warren buffet
Короче, надо просто добавить в каждый .load() код инициализации объекта, то есть в конце всей каши дописать - prepTabs($('.sortable'));
вместо этого читать пост 2 и 3
Ответить с цитированием
  #6 (permalink)  
Старый 17.08.2016, 14:22
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Спасибо большое, буду пробовать, по результату отпишусь.
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2016, 14:23
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

рони, не надо вместо этого читать 2 и 3. Просто профтыкать функцию с аргументом элементом и все. Потому что: скрипт висит на success (у него там похоже на error ничего нет вообще), таблица приходит безусловно, в атрибуте class уже все написано, то есть ничего кроме вышеуказанного делать не надо, а ты как обычно все пытаешься усложнить и затуманить, чтобы свое реноме шамана племени Мумба-Юмба укрепить. )))
Ответить с цитированием
  #8 (permalink)  
Старый 17.08.2016, 14:29
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

И вообще ТС, сделай сортировку через mysql и тогда не придется загружать всю таблицу, в смысле все строки. Это легко, поскольку майскуль позволяет задавать order по индексу поля. Но придется в заголовки профтыкать ссылки со всеми текущими ключами + ключ на сортировку. Сначала кажется геморрой, а когда один раз сделано - работает как из пушки.
Ответить с цитированием
  #9 (permalink)  
Старый 17.08.2016, 14:40
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Модифицировал функцию Hide_Load() по способу, предложенному рони, но.... не работает.
Визуально табличка не меняется, значит класс "sortable" не применяется.
Модифицированный admin_view_events.php
Ответить с цитированием
  #10 (permalink)  
Старый 17.08.2016, 14:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

wfire,
$("#admin_logs").load("models/admin_logs_req.php?uid=" + uid + "&flt=0", Hide_Load());
уберите круглые скобки во всех load
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильная сортировка чисел в таблице dezzignet jQuery 1 06.12.2012 13:17
Правильная сортировка чисел в таблице dezzignet Элементы интерфейса 1 06.12.2012 09:13
Сортировка в таблице hoax Events/DOM/Window 13 03.10.2012 10:11
Сортировка таблицы, подгружаемой ajax Serg-inf AJAX и COMET 2 03.10.2011 14:30
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02