我需要从特定数据表创建自定义PDF打印输出。
我认为使用Ajax button我可以做到,但它只在第一页的表格中发送信息,在本例中为20行。
我知道我可以让表格在屏幕上显示“所有记录”,然后点击按钮,但我不是很喜欢这个,因为所有数据都可以在屏幕上显示(数千行)。
还有其他方法可以发送所有数据吗?
答案 0 :(得分:-1)
我没有找到任何方法使用Ajax按钮,但找到了另一种方法。 我使用过intead:
"oTableTools": {
"sSwfPath": "<?=LOC_JQUERY?>swf/copy_csv_xls_pdf.swf?<?=rand()?>",
"aButtons": [
{
"sExtends": "download",
"sButtonText": "Listagens PDF",
"sUrl": "<?=CAMINHO?>_exporta.php",
"sAction": "text",
"sTag": "default",
"sFieldBoundary": "",
"sFieldSeperator": "\t",
"sNewLine": "<br>",
"sToolTip": "Listagens",
"sButtonClass": "DTTT_button_text",
"sButtonClassHover": "DTTT_button_text_hover",
"mColumns": "all",
"bHeader": true,
"bFooter": true,
"sDiv": "",
"fnMouseover": null,
"fnMouseout": null,
"fnClick": function( nButton, oConfig ) {
var oParams = this.s.dt.oApi._fnAjaxParameters( this.s.dt );
var aoPost = [
{ "name": "cobranca", "value": $("select#cobranca option:selected").val() },
{ "name": "activo", "value": $("select#activo option:selected").val() },
{ "name": "id_empresa", "value": $("select#id_empresa option:selected").val() },
{ "name": "socio_numero", "value": $("#socio_numero").val() },
{ "name": "socio_nome", "value": $("#socio_nome").val() },
{ "name": "data1", "value": $("#data1").val() },
{ "name": "data2", "value": $("#data2").val() },
{ "name": "idade1", "value": $("#idade1").val() },
{ "name": "idade2", "value": $("#idade2").val() },
{ "name": "empresa_profissao", "value": $("#empresa_profissao").val() },
];
var aoGet = [];
/* Create an IFrame to do the request */
nIFrame = document.createElement('iframe');
nIFrame.setAttribute( 'id', 'RemotingIFrame' );
nIFrame.style.border='0px';
nIFrame.style.width='0px';
nIFrame.style.height='0px';
document.body.appendChild( nIFrame );
var nContentWindow = nIFrame.contentWindow;
nContentWindow.document.open();
nContentWindow.document.close();
var nForm = nContentWindow.document.createElement( 'form' );
nForm.setAttribute( 'method', 'post' );
/* Add POST data */
for ( var i=0 ; i<aoPost.length ; i++ )
{
nInput = nContentWindow.document.createElement( 'input' );
nInput.setAttribute( 'name', aoPost[i].name );
nInput.setAttribute( 'type', 'text' );
nInput.value = aoPost[i].value;
nForm.appendChild( nInput );
}
/* Add GET data to the URL */
var sUrlAddition = '';
for ( var i=0 ; i<aoGet.length ; i++ )
{
sUrlAddition += aoGet[i].name+'='+aoGet[i].value+'&';
}
nForm.setAttribute( 'action', oConfig.sUrl );
/* Add the form and the iframe */
nContentWindow.document.body.appendChild( nForm );
/* Send the request */
nForm.submit();
},
"fnSelect": null,
"fnComplete": null,
"fnInit": null
},
]
}
希望这也有助于任何有需要的人。