Top25 Top25 - 8 months ago 104
jQuery Question

jQuery Datatable with PHP json_encode

I tried to parse database table data to jquery data table which are dynamically change. I got following output after php's


$sql = "SELECT * FROM login";

$result = mysql_query($sql);
$a= array();
while ($row = mysql_fetch_assoc($result)) {
$a[][] = $row;

echo (json_encode($a));

Json output

[[{"id":"1","username":"test11","password":"$2y$10$NiKnEN\/ww8yGVhv3JNjSuO5FfOFSthadS2B3GcbA3KGBktAOSu6lK","role":"Administrator "}],[{"id":"2","username":"test","password":"test","role":"test"}]]

Then I called jquery data table ajax function as they said. here my coding for that

$('#example').dataTable( {
"ajax": 'ab.php'
} );

But ultimately display only "Loading..." text in the jquery data table
section. Why is that?

Answer Source


Apparently you're using DataTables version 1.10. By default, this version expects data to be in certain format, see DataTables documentation for more information.

    "data": [
        // row 1 data source,
        // row 2 data source,
        // etc


Change $a[][] = $row; to $a['data'][] = $row in your PHP to produce data in the correct format.