数据表 - JSON未显示大小超过4KB

时间:2014-11-05 08:54:16

标签: php jquery json codeigniter datatable

我正在使用数据表来显示通过Ajax($ POST)在Codeigniter中调用的SQL Server 2008过程返回的数据。最初我做了一个没有输入参数的非常简单的过程,它只返回一个JSON对象列表。 下面是我的问题和我的Codeigniter函数返回我的Codeigniter函数返回的JSON,AJAX函数和JSON结构:

1)对于大于4KB的块,不返回JSON,它只是转换为HTML:

High lighted data not shown as JSON

2)如果我的一个程序返回让我们说5000+记录并且我想在数据表中显示它,那么我的做法是对的吗?或者我应该使用其他一些最佳实践:

Codeigniter功能:

public function executeProc()
 {
    $sqlsrvr = $this->load->database('test', true);

    // Get the input values of the procedure

    $arr = array();
    parse_str($_POST['str'],$arr); 

    //get Procedure Name
    $procName = $_POST['procName'];

    $sp ='exec secondProc';
    $query = $sqlsrvr->query($sp);//->result();
    $jawad =  $query->result_array();

    $this->output->set_header('Content-type: application/json');  
     echo json_encode($jawad);

 }

AJAX功能

$(document).on('click','#executeProc',function(e){

$('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');
  e.preventDefault();

  var jawad = $( ".jawad" ).serialize();

 $.post('<?=base_url();?>command/executeProc',
    {str:jawad,procName:$('#procName').val()},

   function(html){
    //loading data table on return
    $('#example').dataTable( {
     "data": html,
    "columns": [
        { "data": "AppointmentID" },
        { "data": "FirstName" },
        { "data": "LastName" },
        { "data": "AppointmentDate" }
    ]
  } );

    });

});

JSON示例:

[
    {
        "AppointmentID": "1",
        "FirstName": "Test",
        "LastName": "test",
        "AppointmentDate": "2013-01-12"
    },
    {
        "AppointmentID": "2",
        "FirstName": "dfg",
        "LastName": "dfg",
        "AppointmentDate": "2013-01-01"
    }
]

-----编辑后------ STRANGE BEAVAVIOR(JSON标签转换为HTML以获取更大的记录)

获取显示在数据表中的40条记录 enter image description here

对于大于40的记录,这些记录不会显示在数据表中 enter image description here

0 个答案:

没有答案