
jQuery::DataTables - ÑеÑвеÑÐ½Ð°Ñ ÑаÑÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ AJAX запÑоÑов DataTables

use strict; use jQuery::DataTables;
... my $dt = new jQuery::DataTables( cgi => $cgi, dbh => $c->app->dbh ); my $res = $dt->getTableData( 'SELECT DISTINCT id, col_int, col_text, col_real FROM datatable', [qw{id col_int col_text col_real}] ); $c->render( json => $res );
ÐодгоÑÐ°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð´Ð°Ð½Ð½Ñе из DataTable запÑоÑа Ð´Ð»Ñ Ñдобного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ возвÑаÑÐ°ÐµÑ Ñ ÑÑ Ñ Ð´Ð°Ð½Ð½Ñми. ÐелаеÑÑÑ ÑÑо Ð´Ð»Ñ ÑпÑоÑÐµÐ½Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑанного ÑоÑмаÑа, заложенного в DataTables изнаÑалÑно.
Type Name Info
--------------------
int iDisplayStart Display start point in the current data set.
$iDisplayStart
int iDisplayLength Number of records that the table can display in the current draw.
$iDisplayLength It is expected that the number of records returned will be equal to this number,
unless the server has fewer records to return.
int iColumns Number of columns being displayed (useful for getting individual column search info)
$iColumns
string sSearch Global search field
$sSearch
bool bRegex True if the global filter should be treated as a regular expression for advanced filtering, false if not.
$bRegex
bool bSearchable_(int) Indicator for if a column is flagged as searchable or not on the client-side
@abSearchable
string sSearch_(int) Individual column filter
@asSearch
bool bRegex_(int) True if the individual column filter should be treated as a regular expression
@abRegex for advanced filtering, false if not
bool bSortable_(int) Indicator for if a column is flagged as sortable or not on the client-side
@abSortable
int iSortingCols Number of columns to sort on
$iSortingCols
int iSortCol_(int) Column being sorted on (you will need to decode this number for your database)
@aiSortCol
string sSortDir_(int) Direction to be sorted - "desc" or "asc".
@asSortDir
string mDataProp_(int) The value specified by mDataProp for each column. This can be useful
@amDataProp for ensuring that the processing of data is independent from the order of the columns.
string sEcho Information for DataTables to use for rendering.
$sEcho
ÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ вÑзÑваÑÑ ÑÑÑ ÑÑнкÑÐ¸Ñ Ñ Ñказанием запÑоÑа и какие ÑÑолбÑÑ Ð¾Ð½ возвÑаÑаеÑ, напÑимеÑ
getTableData ('SELECT a,b,c FROM table', ['a', 'b', 'c'])
ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ ÑÑолбÑов в ÑилÑÑÑÐ°Ñ Ð±ÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ Ñказанием Ð¸Ñ Ð² кавÑÑÐºÐ°Ñ , Ñак ÑÑо надо ÑказÑваÑÑ Ð¸Ð¼ÐµÐ½Ð° ÑÑолбÑов Ñак, ÑÑÐ¾Ð±Ñ Ð±Ð°Ð·Ð° даннÑÑ Ð¸Ñ Ð¿ÑавилÑно понÑла. Ðногие СУÐРпозволÑÑÑ Ð¸Ð¼ÐµÐ½Ð° ÑÑолÑÑов возвÑаÑаÑÑ Ð±Ð¾Ð»ÑÑими или маленÑкими бÑквами, по ÑÐ»Ð°Ð³Ñ FetchHashKeyName => 'NAME_lc' или FetchHashKeyName => 'NAME_uc'.
Ð ÑÑÐ¾Ð¼Ñ Ð·Ð°Ð¿ÑоÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑеÑÑÑ Ð¿Ð¾Ð¸Ñковое вÑÑажение WHERE, ÑоÑÑиÑовка ORDER BY и лимиÑÑ LIMIT ... OFFSET
ÐоиÑковое вÑÑажение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð´Ð½Ð¾ на вÑе ÑÑолбÑÑ, либо ÑазнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° ÑазнÑе (некоÑоÑÑе!) ÑÑолбÑÑ.
ÐоиÑковое вÑÑажение должно ÑÑакÑоваÑÑÑÑ ÐºÐ°Ðº regexp либо Ð´Ð»Ñ Ð²ÑÐµÑ ÑÑолбÑов, либо regexp Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑÑолбÑов.
СнаÑала вÑполнÑеÑÑÑ Ð¾Ð±Ñее поиÑковое вÑÑажение (еÑли Ñказано), заÑем Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑенного ÑезÑлÑÑаÑа вÑполнÑÑÑÑÑ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑалÑнÑе Ð´Ð»Ñ ÑÑолбÑов поиÑковÑе вÑÑажениÑ. ЯÑно, ÑÑо лÑÑÑе иÑполÑзоваÑÑ ÑолÑко индивидÑалÑнÑе вÑÑажениÑ.
ÐÐ°Ð½Ð½Ð°Ñ ÑеализаÑÐ¸Ñ Ð½Ðµ ÑÑиÑÑÐ²Ð°ÐµÑ Ñлаг bRegex - Ñак как пока непонÑÑно, как обеÑпеÑиÑÑ Ð¸Ñполнение ÑÑого Ñлага Ð´Ð»Ñ ÑазнÑÑ Ð¡Ð£ÐÐ.

Konstantin Tokar <konstantin@tokar.ru>