Сортировка в подгружаемой таблице
Таблица с данными формируется php-скриптом и аяксом подгружается в другой php-скрипт, который отображает ее на странице. Решил сделать сортировку в таблице при помощи Simple Table Sorter
Столкнулся с тем, что скрипт сортировки не работает, видимо, это связано с тем, что табличка подгружается динамически и изначально как DOM-объект в результирующем файле не существует. Т.к. опыта в javascript катастрофически мало, то самостоятельно разобраться и использовать вариант решения, который предлагается автором скрипта сортировки (по ссылке выше) не удалось. Прошу помощи. Прилагаю свои php-файлы: admin_view_events.php - результирующий файл, admin_logs_req.php - подгружает табличку. |
wfire,
загрузили таблицу, нашли таблицу, присвоили класс, запустили плагин для таблицы. |
wfire,
function Hide_Load() { $("#loading").fadeOut('slow'); var table = $("#admin_logs table"); if(table.length) { table.addClass("sortable"); prepTabs(table[0]); } }; |
У него там через ж сделано методом научного самотыка. Таблица подгружается в див с ид "admin_logs", а ТС немедленно создает жабой еще одну пустую таблицу и пытается ее отсортировать.
Короче, надо просто добавить в каждый .load() код инициализации объекта, то есть в конце всей каши дописать - prepTabs($('.sortable')); А тот код создания пустой таблицы выпилить. ЗЫ После загрузки новой таблицы последствия prepTabs() должны сдохнуть по идее. То есть после каждой загрузки надо его заново натравливать. Или сделать по-человечески, то есть на страницу выдавать <table>, а подгружать только строки и вставлять их в tbody |
wfire,
на всякий случай Цитата:
|
Спасибо большое, буду пробовать, по результату отпишусь.:yes:
|
рони, не надо вместо этого читать 2 и 3. Просто профтыкать функцию с аргументом элементом и все. Потому что: скрипт висит на success (у него там похоже на error ничего нет вообще), таблица приходит безусловно, в атрибуте class уже все написано, то есть ничего кроме вышеуказанного делать не надо, а ты как обычно все пытаешься усложнить и затуманить, чтобы свое реноме шамана племени Мумба-Юмба укрепить. )))
|
И вообще ТС, сделай сортировку через mysql и тогда не придется загружать всю таблицу, в смысле все строки. Это легко, поскольку майскуль позволяет задавать order по индексу поля. Но придется в заголовки профтыкать ссылки со всеми текущими ключами + ключ на сортировку. Сначала кажется геморрой, а когда один раз сделано - работает как из пушки.
|
Модифицировал функцию Hide_Load() по способу, предложенному рони, но.... не работает.
Визуально табличка не меняется, значит класс "sortable" не применяется. Модифицированный admin_view_events.php |
wfire,
$("#admin_logs").load("models/admin_logs_req.php?uid=" + uid + "&flt=0", Hide_Load()); уберите круглые скобки во всех load |
Часовой пояс GMT +3, время: 18:01. |