Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сортировка таблицы через jquery / 21 сообщений из 21, страница 1 из 1
04.04.2013, 14:15
    #38212888
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
Всем привет.
Есть таблица которую строю динамически на основе пхп скрипта. А потом есть необходимость ее сортировать. Сортировка сейчас запускается, вызывает этот скрипт с нужными параметрами, скрипт выдает ответ в аякс формате, но таблица не пересортировуется а так и висит надпись processing
Шапка таблицы выглядит таким образом
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$('#mainTable').dataTable( {
    			//"bJQueryUI": true,
				"sScrollY": 450,
				"sScrollX": "95%",
				//"sScrollXInner": "100%",
        		"bPaginate": true,
	        	"bLengthChange": false,
    	    	"bFilter": false,
	        	"bSort": true,
    			"bInfo": false,
	        	"bAutoWidth": true,
    			"bProcessing": true,
	        	"bServerSide": true,
        		"sAjaxSource": "calc2_data.php<?=$data?>",
        		"aoColumnDefs": [
            		{ "bSortable": true, "aTargets": [ 0 ] }
		        ],
		        "aaSorting": [[ 1, 'asc' ]],
...
Рейтинг: 0 / 0
04.04.2013, 14:26
    #38212912
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
в браузер так и выдает?
Код: javascript
1.
"sAjaxSource": "calc2_data.php<?=$data?>",
...
Рейтинг: 0 / 0
04.04.2013, 14:38
    #38212933
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
re_qas,

вышеуказанная строка часть пхп кода, соотвесвенно в браузере уже запрос по другому выгляит. если нужен код страницы из браузера то скоро вставлю.
...
Рейтинг: 0 / 0
04.04.2013, 15:05
    #38212988
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
Вы тянул иннер хтмл из странички.
Там вот такой код.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
$(document).ready(function() {
$('#mainTable').dataTable( {
//"bJQueryUI": true,
"sScrollY": 450,
"sScrollX": "95%",
//"sScrollXInner": "100%",
"bPaginate": true,
"bLengthChange": false,
"bFilter": false,
"bSort": true,
"bInfo": false,
"bAutoWidth": true,
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "calc2_data.php?dt1=02.04.2013&dt2=03.04.2013",
"aoColumnDefs": [
{ "bSortable": true, "aTargets": [ 0 ] }
],
"aaSorting": [[ 1, 'asc' ]], 
...
Рейтинг: 0 / 0
04.04.2013, 16:34
    #38213220
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
Взял шапку из этой страницы
http://live.datatables.net/#javascript,html,live

но все равно не работает. Может причина в получении данных динамически? Если бы была статическая страница то может быть бы все работало, а то у меня клики по заголовку таблицы заново создают аякс запрос.
...
Рейтинг: 0 / 0
04.04.2013, 16:47
    #38213250
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
что у вас отдает calc2_data.php?dt1=02.04.2013&dt2=03.04.2013 должен быть json массив...
тут без html кода никак... или рабочего примера
...
Рейтинг: 0 / 0
04.04.2013, 16:56
    #38213271
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
...
Рейтинг: 0 / 0
04.04.2013, 16:56
    #38213272
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
re_qas,

пхп скрипт отдает данные в формате джейсон
{"sEcho":1,"iTotalRecords":455,"iTotalDisplayRecords":455,"aaData":[["G","Акции","","","","","","",""],[1,"Транснф ап","Level |","1.43","-0.98","66853.0000","66909.0000","0.08"]

Вот такого вида строку.
А в самом коде так и написанно echo json_encode( $output );
...
Рейтинг: 0 / 0
04.04.2013, 17:06
    #38213291
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
что выдает js консоль?
...
Рейтинг: 0 / 0
04.04.2013, 17:18
    #38213313
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
сейчас заметил в одной документации идет aoColumns в другой aoColumnDefs о_О
...
Рейтинг: 0 / 0
04.04.2013, 17:37
    #38213363
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
re_qas,

собтвенно меня тоже смущает обилие методов сортировки и различных параметров.
Мой ява скрипт код выглядит так
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
<script type="text/javascript">
		$(document).ready(function() {
    		$('#mainTable').dataTable( {
    			//"bJQueryUI": true,
				"sScrollY": 450,
				"sScrollX": "95%",
				//"sScrollXInner": "100%",
				
        		"bPaginate": false,
	        	"bLengthChange": false,
    	    	"bFilter": false,
	        	"bSort": true,
    			"bInfo": false,
	        	"bAutoWidth": true,
    			"bProcessing": false,
	        	"bServerSide": true,
        		"sAjaxSource": "calc2_data.php<?=$data?>",
        		"aoColumnDefs": [
          { "asSorting": [ "asc" ], "aTargets": [ 1 ] },
         { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 2 ] },
         { "asSorting": [ "desc" ], "aTargets": [ 3 ] },
		  { "asSorting": [ "asc" ], "aTargets": [ 4 ] },
         { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 5 ] },
         { "asSorting": [ "desc" ], "aTargets": [ 6 ] }
		 
		        ],
				
     "iDefaultSortIndex": 2, 
	 "sDefaultSortDirection": "asc" ,
    

				"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
		            if ( aData[0] == "G" ) {
	                    var nGroup = document.createElement( 'tr' );
	                    var nCell = document.createElement( 'td' );
	                    nCell.className = "group1 left";
	                    nCell.innerHTML = aData[1];
	                    nCell.colSpan = 8;
	                    nGroup.appendChild( nCell );
	                    nRow = nGroup;
	                } else if ( aData[0] == "A") {
	                    var nGroup = document.createElement( 'tr' );
	                    var nCell = document.createElement( 'td' );
	                    nCell.className = "avg1 right";
	                    nCell.innerHTML = aData[1];
	                    nGroup.appendChild( nCell );

	                	var span = 2;
		                for( var j=2; j<aData.length; j++ ) {
		                	if( aData[j] == "" ) {
		                		span++;
		                	} else {
	                    		var nCell2 = document.createElement( 'td' );
	                    		nCell2.className = "avg1";
	                    		nCell2.innerHTML = aData[j];
	                    		nGroup.appendChild( nCell2 );
		                	}
		                }

	                    nCell.colSpan = span;
	                    nRow = nGroup;
		                //$('td:eq(4)', nRow).html( '<b>A</b>' );
		            }
		            for(var i=4; i<=5; i++) {
	            		if(aData[i] > 0) {
		            		$('td:eq(' + i + ')', nRow).addClass( 'green' );
	            		} else if(aData[i] < 0) {
		            		$('td:eq(' + i + ')', nRow).addClass( 'red' );
	            		}
	            	}
		            return nRow;
		        },
    		} );

            $.datepicker.setDefaults( $.datepicker.regional[ "ru" ] );
            $( "#dt1,#dt2" ).datepicker($.datepicker.regional[ "ru" ]);

            $.getJSON('calc2_idata.php<?= $data ?>', function(data) {
              var items = [];

              prevGrp = -1;
              $.each(data, function(key, val) {
                    if(prevGrp!=val[3]) {
                        prevGrp=val[3];
                        items.push('<dt id="' + key + '"><input type="checkbox" name="grp_' + val[3] + '"/>' + val[4] + '</dt>');
                    }
                    items.push('<dd id="' + key + '"><input type="checkbox" name="code_' + val[2] + '" ' + (val[5] ? 'checked' : '') + '/>' + val[0] + '</dd>');
                    
              });

              $('<dl/>', {
                'class': 'my-new-list',
                html: items.join('')
              }).appendTo('div#setuplist');

              $("dt > :checkbox").click(function() {
                var cbs = $(this).parent().nextUntil("dt").children(":checkbox");
                if($(this).attr('checked')) {
                    cbs.attr('checked', 'checked');
                } else {
                    cbs.removeAttr('checked');
                }
              });
            });

            $("a.setup").fancybox(
            {
                "width": 800,
                "height": 300,
                "overlayShow": false,
            });                
		} );
	</script>
...
Рейтинг: 0 / 0
04.04.2013, 18:11
    #38213439
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
а у тебя в таблицу изначально данные попадают?
...
Рейтинг: 0 / 0
04.04.2013, 18:32
    #38213482
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
re_qas,

да первичное заполнение таблица происходит на ура.
А вот потом ее отсортировать по клику на любом из столбцов вот это проблема.
Мне тут подкинули пару идей про то что надо на кол беки посмореть и зарегистрировать джей сон объект чтобы он потом поддавался сортировке. Ошибок в ява скрипт панели нет. Клацать по таблице можно долго и нудно и ошибок в консоле не будет, равно как и сортировки.
...
Рейтинг: 0 / 0
04.04.2013, 18:39
    #38213494
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
есть подозрение что проблема в
Код: javascript
1.
"bServerSide": true,


сортировать на стороне сервера...
...
Рейтинг: 0 / 0
04.04.2013, 18:41
    #38213495
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
посмотри что у тебя отправляется на сервер, и что сервер тебе возвращает
...
Рейтинг: 0 / 0
04.04.2013, 18:57
    #38213509
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
re_qas,

Пасибо!!!!!
Поставил "bServerSide": false,
и все работает на ура! Как говорится а слона то я и не заметил.
...
Рейтинг: 0 / 0
04.04.2013, 23:31
    #38213727
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
зато я бегло изучил либку )))
...
Рейтинг: 0 / 0
12.04.2013, 19:11
    #38224025
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
появился еще вопрос. Как исключить некоторые поля из сортировки? А то получается морока, при сортировки полей которые внутри colspan получаются траблы. Также иногда имеют место траблы если в таблице есть разделители строк, т.е. идут строки с данными , потом очередной колспан на всю ширину таблицы с названием нового вида данных и опять данные, и так много раз внутри таблицы. Так вот когда пересортировываю отдельные поля, вот эти вот разделители иногда оказываются все в верху ибо в них пусто ( сортировка по возрастанию).
...
Рейтинг: 0 / 0
15.04.2013, 16:24
    #38226204
re_qas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
описывать каждую колонку и там где не нужно "bSortable": false по-идее
...
Рейтинг: 0 / 0
15.04.2013, 23:05
    #38226746
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
re_qasописывать каждую колонку и там где не нужно "bSortable": false по-идее
пасибо, попробую, я так понял что там можно и запретить сортировку в обе стороны а разрешить только в одну сторону, - на возростание или на спадание.
...
Рейтинг: 0 / 0
16.04.2013, 00:10
    #38226786
forward12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка таблицы через jquery
http://datatables.net/forums/discussion/6089/disable-sorting-for-specific-rows./p1

вот такой линк нашел для запрета сортировки отдельных строк.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / сортировка таблицы через jquery / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]