вот я делал обновлялку для таблицы с данными. каждые $timer секунд у меня шёл запрос к базе и получал данные от не в виде обекта джейсона
формата вида:
data = {"bids":[{"Security":" ","QType":" ","Volume":" ","Price":" ","Trader":null,"Client":null,"Comments":" ","Date_add":null,"Date_update":null,"Type":"1","A ction":{"n":true,"e":false,"d":false}}],"offers":[{"Security":" ","QType":" ","Volume":" ","Price":" ","Trader":null,"Client":null,"Comments":" ","Date_add":null,"Date_update":null,"Type":"2","A ction":{"n":true,"e":false,"d":false}}]}
собвенно переделывал массив php в джейсон...саму функцию не помню, бо переделывал зендом.Zend_Json::encode($array);
у меня две таблицы bids и offers потому два объекта внутри.
чистить код для данного примера не захотел,думаю и так понятно.. запускается аджакс запрос, при получении данных пробигнается по всему массиву и добавляет построчно в таблицу строки. используется плагин dataTable для вида таблицы и сортировки-фильтрации, но это к делу не сильно относится. суть в получении и прохождению по данным массива.
думаю будет полезно
)
$("#message").everyTime(
$timer,
function(i){
$.ajax({
url: "<?php echo $this->baseUrl?>flow/get.new.rows/<?php echo $this->locid.$this->forLink.$this->urlEnd;?>",
global: false,
type: "POST",
dataType: 'json',
beforeSend: function(){
$('.ui-widget').show();
},
complete : function(){
$(".ui-widget").hide();
$('td a').addClass('thickbox');
},
success: function($data){
//alert($data.bids !== undefined);
if($data.bids != undefined || $data.offers != undefined)
{
if($data.bids.length > 0) bidsTable.fnClearTable( 0 );
if($data.offers.length > 0)offersTable.fnClearTable( 0 );
$.each($data,function(a,b){
$.each(b,function(i,v){
var date_add = v.Date_add != null ? new Date(v.Date_add*1000): '';
var date_update = v.Date_update != null ? new Date(v.Date_update*1000): '';
var $act_n = v.Action.n ? '<a href="http://flow:81/flow/edit.<?php echo $this->loc?>-'+v.Type+'-0<?php echo $this->urlEnd?>?height=250&width=300" class="thickbox"><img src="/design/img/btn_add.png" /></a>':'';
var $act_e = v.Action.e ? '<a href="http://flow:81/flow/edit.<?php echo $this->loc?>-'+v.Type+'-'+v.id+'<?php echo $this->urlEnd?>?height=250&width=300" class="thickbox"><img src="/design/img/btn_edit.png" /></a>':'';
var $act_d = v.Action.d ? '<a href="http://flow:81/flow/delete.'+v.id+'-<?php echo $this->locid.$this->urlEnd?>"><img src="/design/img/btn_delete.png" /></a>':'';
var $row = [
v.Security != null ? v.Security.toString(): '',
v.QType != null ? v.QType.toString(): '',
v.Volume != null ? v.Volume.toString(): '',
v.Price != null ? v.Price.toString(): '',
v.Trader != null ? v.Trader.toString(): '',
v.Client != null ? v.Client.toString(): '',
v.Comments != null ? v.Comments.toString(): '',
v.Date_add != null ? date_add.format('d.m.Y H:i').toString(): date_add.toString(),
v.Date_update != null ? date_update.format('d.m.Y H:i').toString():date_update.toString(),
$act_n+' '+$act_e+' '+$act_d
];
if(v.Type.toString() == "1")
{
bidsTable.fnAddData($row);
}
if(v.Type.toString() == "2"){
offersTable.fnAddData($row);
}
});
});
}
}
});
}
);
если нужно сортировать сам массив, то я его сортирую до получения, то есть средсвами php...ну это начальная сортировка..потом уже как душе угодно.