Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как отсортировать строки html таблицы по результату определённой ячейки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
armancho7777777 Супермодератор
Отправлено: 18 Февраля, 2012 - 12:46:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Всем привет!
Как отсортировать строки html таблицы по результату определённой ячейки.
На пример, есть такая таблица:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <table>
  3.   <tr>
  4.     <td>Текст</td>
  5.     <td>1</td>
  6.     <td>шт.</td>
  7.   </tr>
  8.   <tr>
  9.     <td>Текст</td>
  10.     <td>5</td>
  11.     <td>шт.</td>
  12.   </tr>
  13.   <tr>
  14.     <td>Текст</td>
  15.     <td>2</td>
  16.     <td>шт.</td>
  17.   </tr>
  18.   <tr>
  19.     <td>Текст</td>
  20.     <td>6</td>
  21.     <td>шт.</td>
  22.   </tr>
  23.   <tr>
  24.     <td>Текст</td>
  25.     <td>3</td>
  26.     <td>шт.</td>
  27.   </tr>
  28.   <tr>
  29.     <td>Текст</td>
  30.     <td>7</td>
  31.     <td>шт.</td>
  32.   </tr>
  33.   <tr>
  34.     <td>Текст</td>
  35.     <td>10</td>
  36.     <td>шт.</td>
  37.   </tr>
  38.   <tr>
  39.     <td>Текст</td>
  40.     <td>9</td>
  41.     <td>шт.</td>
  42.   </tr>
  43.   <tr>
  44.     <td>Текст</td>
  45.     <td>11</td>
  46.     <td>шт.</td>
  47.   </tr>
  48.   <tr>
  49.     <td>Текст</td>
  50.     <td>8</td>
  51.     <td>шт.</td>
  52.   </tr>
  53. </table>
  54.  


Как отсортировать строки по значению вторых ячеек?

.

(Отредактировано автором: 18 Февраля, 2012 - 12:46:44)

 
 Top
tuareg
Отправлено: 18 Февраля, 2012 - 12:56:34
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Определяешь номер ячейки. Выбираешь все значения в массив. И ф-я сортировки массива.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Февраля, 2012 - 13:21:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




tuareg пишет:
Определяешь номер ячейки. Выбираешь все значения в массив. И ф-я сортировки массива.

Да это я понимаю.
Надо, чтобы при клике на кнопку, строки отсортировались.
Не могу реализовать, хотя задача простая))
 
 Top
tuareg
Отправлено: 18 Февраля, 2012 - 13:48:36
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Я это делал следующим образом. Сразу уточняю, я не претендую на гениальность. Улыбка
Сначала я выбирал в массив типа
arrHtml[0]='<tr><td><td></tr>';/**/всю таблицу
Потом, вместо второго массива я использовал ассоциативный массив, типа
arr[0]={
index:0,/*индекс=arrHtml[0]*/
ячейка№1:5
}
arr[1]={
index:1,
ячейка№1:2
}
Сортировку многомерного массива я взял с http://webew[dot]ru/articles/2209[dot]webew
Ну а после сортировки вторго все просто, проходим новый массив и подставляем значения из массива arrHtml

(Отредактировано автором: 18 Февраля, 2012 - 13:52:20)

 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Февраля, 2012 - 14:27:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




)) Почти так и сделал))

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(function(){
  3.  
  4.   var arrTR = [];
  5.  
  6.   $('table tr').each(function(index, element) {
  7.          
  8.          arrTR[index] = [[parseInt($.trim($(this).find('td:eq(1)').text()), 10)], [this]];
  9.          
  10.   });  
  11.        
  12.   function sortFunction_min(a, b){
  13.         if(a[0][0] < b[0][0]){
  14.           return -1;
  15.         }
  16.         else if(a[0][0] > b[0][0]){
  17.           return 1;
  18.         }
  19.         else{
  20.           return 0;
  21.         }
  22.   }
  23.  
  24.  
  25.   function sortFunction_max(a, b){
  26.         if(a[0][0] > b[0][0]){
  27.           return -1;
  28.         }
  29.         else if(a[0][0] < b[0][0]){
  30.           return 1;
  31.         }
  32.         else{
  33.           return 0;
  34.         }
  35.   }
  36.  
  37.  
  38.   var newArr = arrTR.sort(sortFunction_min);
  39.  
  40.   for(var key in newArr){
  41.         $('table').append($(newArr[key][1]));
  42.   }
  43.  
  44.  
  45.   var radio = $('#radio_inp');
  46.  
  47.   $('#btn').click(function(){
  48.          
  49.         if(radio.is(':checked')){
  50.           newArr = arrTR.sort(sortFunction_max);
  51.           radio.attr('checked', false);
  52.         }
  53.         else
  54.         {
  55.           newArr = arrTR.sort(sortFunction_min);
  56.           radio.attr('checked', true);
  57.         }      
  58.        
  59.        
  60.         for(var key in newArr){
  61.            $('table').append($(newArr[key][1]));
  62.         }
  63.          
  64.   });
  65.        
  66.        
  67. });
  68.  

(Отредактировано автором: 18 Февраля, 2012 - 14:53:18)

 
 Top
tuareg
Отправлено: 18 Февраля, 2012 - 15:28:08
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




можно и так, но это плохая идея, для большой таблицы.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB