Error when using fnServerData with server side processing
Error when using fnServerData with server side processing
Hi all, I'm experiencing some issues when using server side processing along with fnServerData.
When using server side processing with fnServerData I receive all the data from the database (instead of just 10 rows at a time), and in the JSON that is returned I do not receive values for sEcho, iTotalRecords, or iTotalDisplayRecords. I have successfully implemented server side processing and fnServerData individually, errors only occur when they are combined. I've taken a look at this example http://datatables.net/examples/server_side/custom_vars.html but can't find anything out of the ordinary.
Client side:
[code]
var game_id = GetVar("game_id");
$(document).ready(function() {
var editor = new $.fn.dataTable.Editor( {
"ajaxUrl": "table/service/action_table_service.php",
"domTable": "#action_table",
"fields": [
{
"label": "Player Id:",
"name": "player_id"
}, {
"label": "Card Id:",
"name": "card_id"
}
]
} );
editor.on( 'onPreSubmit', function ( e, data ) {
data.game_id = game_id;
} );
$('#action_table').dataTable( {
"sDom": 'T<"clear">plfrtip',
"sAjaxSource": "table/service/action_table_service.php",
"bServerSide": true,
"sServerMethod": 'POST',
"fnServerData": function ( sSource, aoData, fnCallback ) {
aoData.push( { "name": "game_id", "value": "30" } );
$.getJSON( sSource, aoData, function (json) {
fnCallback(json);
})
},
"aoColumns": [
{ "mData": "player_id" },
{ "mData": "physical_card_id" }
],
"oTableTools": {
"sRowSelect": "multi",
"aButtons": [
{ "sExtends": "editor_create", "editor": editor },
{ "sExtends": "editor_edit", "editor": editor },
{ "sExtends": "editor_remove", "editor": editor }
]
},
"sPaginationType": "full_numbers"
} );
} );
[/code]
Server side
[code]
<?php
include( "../../script/DataTables-1.9.4/extras/Editor-1.2.3/examples/php/lib/DataTables.php" );
use
DataTables\Editor,
DataTables\Editor\Field,
DataTables\Editor\Format,
DataTables\Editor\Join,
DataTables\Editor\Validate;
if(isset($_GET["game_id"])) $game_id = $_GET["game_id"];
else if(isset($_POST["game_id"])) $game_id = $_POST["game_id"];
$editor = Editor::inst( $db, 'action', 'action_id' )
->fields(
Field::inst( 'physical_card_id' ),
Field::inst( 'player_id' )
)
->where($key="game_id", $value=$game_id, $op="=");
$out = $editor
->process($_POST)
->data();
echo json_encode( $out );
[/code]
Also want to say thanks for the great work allan, datatables and editor are awesome.
When using server side processing with fnServerData I receive all the data from the database (instead of just 10 rows at a time), and in the JSON that is returned I do not receive values for sEcho, iTotalRecords, or iTotalDisplayRecords. I have successfully implemented server side processing and fnServerData individually, errors only occur when they are combined. I've taken a look at this example http://datatables.net/examples/server_side/custom_vars.html but can't find anything out of the ordinary.
Client side:
[code]
var game_id = GetVar("game_id");
$(document).ready(function() {
var editor = new $.fn.dataTable.Editor( {
"ajaxUrl": "table/service/action_table_service.php",
"domTable": "#action_table",
"fields": [
{
"label": "Player Id:",
"name": "player_id"
}, {
"label": "Card Id:",
"name": "card_id"
}
]
} );
editor.on( 'onPreSubmit', function ( e, data ) {
data.game_id = game_id;
} );
$('#action_table').dataTable( {
"sDom": 'T<"clear">plfrtip',
"sAjaxSource": "table/service/action_table_service.php",
"bServerSide": true,
"sServerMethod": 'POST',
"fnServerData": function ( sSource, aoData, fnCallback ) {
aoData.push( { "name": "game_id", "value": "30" } );
$.getJSON( sSource, aoData, function (json) {
fnCallback(json);
})
},
"aoColumns": [
{ "mData": "player_id" },
{ "mData": "physical_card_id" }
],
"oTableTools": {
"sRowSelect": "multi",
"aButtons": [
{ "sExtends": "editor_create", "editor": editor },
{ "sExtends": "editor_edit", "editor": editor },
{ "sExtends": "editor_remove", "editor": editor }
]
},
"sPaginationType": "full_numbers"
} );
} );
[/code]
Server side
[code]
<?php
include( "../../script/DataTables-1.9.4/extras/Editor-1.2.3/examples/php/lib/DataTables.php" );
use
DataTables\Editor,
DataTables\Editor\Field,
DataTables\Editor\Format,
DataTables\Editor\Join,
DataTables\Editor\Validate;
if(isset($_GET["game_id"])) $game_id = $_GET["game_id"];
else if(isset($_POST["game_id"])) $game_id = $_POST["game_id"];
$editor = Editor::inst( $db, 'action', 'action_id' )
->fields(
Field::inst( 'physical_card_id' ),
Field::inst( 'player_id' )
)
->where($key="game_id", $value=$game_id, $op="=");
$out = $editor
->process($_POST)
->data();
echo json_encode( $out );
[/code]
Also want to say thanks for the great work allan, datatables and editor are awesome.
This discussion has been closed.
Replies
[code]
"fnServerParams": function (aoData) {
aoData.push( { "name": "game_id", "value": game_id } );
}
[/code]
Regards,
Allan