Actualice la fuente de DataTables procesada por el servidor con parámetros adicionales

Cuando bash hacer clic en el botón Enviar entrada, estoy intentando pasar parámetros adicionales (lista de casillas de verificación) a una tabla de tablas de datos procesada por el servidor:

captura de pantalla

Lo que probablemente significa que debo establecer my_table.sAjaxSource en la secuencia de comandos backend más una lista comstackda de casillas de verificación y luego llamar a my_table.fnDraw () ?

He preparado un caso de prueba muy simple – test.php :

 

y index.html :

    @import "/css/demo_table_jui.css"; @import "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/redmond/jquery-ui.css";  ; ;   $(function() { my_table = $('#my_table').dataTable( { bJQueryUI: true, bServerSide: true, bProcessing: true, sAjaxSource: '/test.php' } ); }); var my_table; function redrawTable() { var str = ''; var boxes = new Array(); //loop through all checkboxes $(':checkbox').each(function() { if ($(this).is(':checked')) { boxes.push($(this).attr('name') + '=' + $(this).val()); } }); str = '/test.php?' + boxes.join('&'); // TODO: set my_table.sAjaxSource to str my_table.fnDraw(); }    

Select fruit:

Select candy:

Column_1 Column_2 Column_3

Por favor, avíseme, cómo lograrlo (pasar parámetros personalizados al script fuente de DataTables AJAX).

ACTUALIZACIÓN: este código parece funcionar bien para mí, gracias Nicola

    @import "/css/demo_table_jui.css"; @import "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/themes/redmond/jquery-ui.css";      var my_table; $(function() { my_table = $('#my_table').dataTable( { bJQueryUI: true, bServerSide: true, bProcessing: true, sAjaxSource: '/test.php', fnServerParams: function ( aoData ) { $(':checkbox').each(function() { if ($(this).is(':checked')) { aoData.push( { name: $(this).attr('name'), value: $(this).val() } ); } }); } }); });    

Select fruit:

Select candy:

Column_1 Column_2 Column_3

Y en el error_log veo:

 QUERY_STRING: sEcho=2& iColumns=3& sColumns=& iDisplayStart=0& iDisplayLength=10& mDataProp_0=0& mDataProp_1=1& mDataProp_2=2& sSearch=& bRegex=false& sSearch_0=& bRegex_0=false& bSearchable_0=true& sSearch_1=& bRegex_1=false& bSearchable_1=true& sSearch_2=& bRegex_2=false& bSearchable_2=true& iSortingCols=1& iSortCol_0=0& sSortDir_0=asc& bSortable_0=true& bSortable_1=true& bSortable_2=true& fruits=apple& fruits=banana& candy=toffee& candy=fudge& _=1317666289823 

Como puede ver en este ejemplo, debe usar fnServerParams:

 "fnServerParams": function ( aoData ) { aoData.push( { "name": "more_data", "value": "my_value" } ); } 

donde aoData es una matriz de objetos para enviar al servidor