Json returned but table empty

Json returned but table empty

kckc Posts: 14Questions: 4Answers: 0

I'm working with the jquery datatables plugin and codeigniter , while trying to follow (roughly ) http://www.ahmed-samy.com/php-codeigniter-full-featrued-jquery-datatables-part-1/. I am getting the following error:

DataTables warning: table id=big_table - Requested unknown parameter '0' for row 0. For more information about this error, please see http://datatables.net/tn/4

In firebug there are no errors and the following JSON is returned:

{"draw":0,"recordsTotal":3,"recordsFiltered":3,"data":[{"id":"2","message_id":"<047d7bf1665e40753c04fd394d72@google.com>","subject":"Delivery Status Notification (Failure)","date":"2014-07-02 19:34:17"},{"id":"3","message_id":"<ad86a2fb8673b8a6.14044068.406744.354605.en-US.b5df177c74ea@google.com>","subject":"Flying the red, white and blue on YouTube","date":"2014-07-03 19:01:21"},{"id":"4","message_id":"<047d7bf1665e04fd640c89@google.com>","subject":"Delivery Status Notification (Failure)","date":"2014-07-04 22:34:16"

i notice that the draw is 0 even though the number of records (3) is correct. The table itself its empty.

How can I fix this?

My controller:

function index()
{

        //set table id in table open tag
        $tmpl = array('table_open' => '<table id="big_table" border="1" cellpadding="2" cellspacing="1" class="mytable">');
        $this->table->set_template($tmpl);


        $this->table->set_heading("id,message_id,subject,date");

        $this->load->view('serversidetestview');
    }

    //function to handle callbacks

    function datatable()
    {

        $this->datatables->select("id,message_id,subject,date")->from('imap');
        echo $this->datatables->generate();
    }    

My view:

<html> 
  <head> 
      <base href="<?=base_url();?>">

       <!-- DataTables CSS -->

    <link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.1/css/jquery.dataTables.css">

    <!-- jQuery -->
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>

<!-- DataTables -->

<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.1/js/jquery.dataTables.min.js"></script>    



  </head> 
  <body> 


<h1>Subscriber management</h1>
<?php echo $this->table->generate(); ?>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        var oTable = $('#big_table').dataTable({
            "bProcessing": true,
            "bServerSide": true,
            "sAjaxSource": 'datatable_controller/datatable',
            "bJQueryUI": true,
            "sPaginationType": "full_numbers",
            "iDisplayStart ": 20,

            "fnInitComplete": function () {
                oTable.fnAdjustColumnSizing();
            },
            'fnServerData': function (sSource, aoData, fnCallback) {
                $.ajax
                ({
                    'dataType': 'json',
                    'type': 'POST',
                    'url': sSource,
                    'data': aoData,
                    'success': fnCallback
                });
            }
        });
    });
</script>

  </body> 
</html> 

This question has an accepted answers - jump to answer

Answers

  • DaimianDaimian Posts: 62Questions: 1Answers: 15
    Answer ✓

    The error is caused by your first JSON row because it begins with a " but also includes a <script> tage with another ". So you have incorrectly formatted JSON.

    The "draw": 0 just refers to the number of times the data is requested, each call should return an incremented value - so it is not your issue.

  • kckc Posts: 14Questions: 4Answers: 0

    Daimian,

    Thanks for the Info about the draw. Any idea on how to fix the JSON? This is my first experiment with server side processing with datatables.

    Thanks in advance,

    Bill

  • DaimianDaimian Posts: 62Questions: 1Answers: 15

    First I would remove those <script> tags from your data source - any additional javascript can be performed client side via DataTables columns.render

  • kckc Posts: 14Questions: 4Answers: 0

    Daimian,

    Please forgive my ignorance, but what script tags are you referring to ?

    Bill

  • kckc Posts: 14Questions: 4Answers: 0

    Just to follow up, The Json is valid , I checked using http://jsonlint.com/. This forum is rendering it incorrectly. you can see the true version of it at http://pastebin.com/sNPYqdrn

This discussion has been closed.