Test failed with DataTables Editor generator
Test failed with DataTables Editor generator
Hello,
I am trying to implement a code with datatables generator package with PHP server side and mysql for the database.
I installed the package on my computer in EasyPHP.
When running the code , on the first page (fetch data from mysql) I got this message and nothing is printed in the list :
can anyone could help me ?
DataTables warning: table id=UAT - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1
I checked the json response and can see that It sounds good :
connect database : uat{"data":[{"DT_RowId":"row_1","autor":"Rob","date":"Thu, 1 Feb 18","desc":"Insert 1","status":"On going","comment":"ok"},{"DT_RowId":"row_2","autor":"Steve","date":"Wed, 7 Feb 18","desc":"test insert 2","status":"On Going","comment":"Running ?"},{"DT_RowId":"row_3","autor":"Bob","date":"Thu, 8 Feb 18","desc":"Insert 3","status":"Testing","comment":"marre"},{"DT_RowId":"row_4","autor":"","date":null,"desc":"","status":"","comment":""}],"options":[],"files":[]}
Here is my sql table code :
$db->sql( "CREATE TABLE IF NOT EXISTS UAT
(
id
int(10) NOT NULL auto_increment,
autor
varchar(255),
date
date,
desc
text,
status
varchar(255),
comment
text,
PRIMARY KEY( id
)
);" );
my javascript code :
/*
* Editor client script for DB table UAT
* Created by http://editor.datatables.net/generator
*/
(function($){
$(document).ready(function() {
var editor = new $.fn.dataTable.Editor( {
ajax: 'php/table.UAT.php',
table: '#UAT',
fields: [
{
"label": "Autor:",
"name": "autor"
},
{
"label": "Date:",
"name": "date",
"type": "datetime",
"format": "ddd, D MMM YY"
},
{
"label": "Desc:",
"name": "desc",
"type": "textarea"
},
{
"label": "Status:",
"name": "status"
},
{
"label": "Comment:",
"name": "comment",
"type": "textarea"
}
]
} );
var table = $('#UAT').DataTable( {
dom: 'Bfrtip',
ajax: 'php/table.UAT.php',
columns: [
{
"data": "autor"
},
{
"data": "date"
},
{
"data": "desc"
},
{
"data": "status"
},
{
"data": "comment"
}
],
select: true,
lengthChange: false,
buttons: [
{ extend: 'create', editor: editor },
{ extend: 'edit', editor: editor },
{ extend: 'remove', editor: editor }
]
} );
} );
//alert("uat.js");
}(jQuery));
my php code :
<?php
/*
* Editor server script for DB table UAT
* Created by http://editor.datatables.net/generator
*/
// DataTables PHP library and database connection
include( "lib/DataTables.php" );
// Alias Editor classes so they are easy to use
use
DataTables\Editor,
DataTables\Editor\Field,
DataTables\Editor\Format,
DataTables\Editor\Mjoin,
DataTables\Editor\Options,
DataTables\Editor\Upload,
DataTables\Editor\Validate,
DataTables\Editor\ValidateOptions;
// The following statement can be removed after the first run (i.e. the database
// table has been created). It is a good idea to do this to help improve
// performance.
$db->sql( "CREATE TABLE IF NOT EXISTS UAT
(
id
int(10) NOT NULL auto_increment,
autor
varchar(255),
date
date,
desc
text,
status
varchar(255),
comment
text,
PRIMARY KEY( id
)
);" );
// Build our Editor instance and process the data coming from _POST
Editor::inst( $db, 'UAT', 'id' )
->fields(
Field::inst( 'autor' ),
Field::inst( 'date' )
->validator( Validate::dateFormat( 'D, j M y' ) )
->getFormatter( Format::dateSqlToFormat( 'D, j M y' ) )
->setFormatter( Format::dateFormatToSql( 'D, j M y' ) ),
Field::inst( 'desc' ),
Field::inst( 'status' ),
Field::inst( 'comment' )
)
->process( $_POST )
->json();
This question has an accepted answers - jump to answer
Answers
What is the server responding with if it is not valid JSON please?
Allan
I'm not sure to understand but I opened the debug on Chrome and can see the xhr response :
connect database : uat{"data":[{"DT_RowId":"row_1","autor":"Rob","date":"Thu, 1 Feb 18","desc":"Insert 1","status":"On going","comment":"ok"},{"DT_RowId":"row_2","autor":"Steve","date":"Wed, 7 Feb 18","desc":"test insert 2","status":"On Going","comment":"Running ?"},{"DT_RowId":"row_3","autor":"Bob","date":"Thu, 8 Feb 18","desc":"Insert 3","status":"Testing","comment":"marre"},{"DT_RowId":"row_4","autor":"","date":null,"desc":"","status":"","comment":""}],"options":[],"files":[]}
I see no error :
That part is making the JSON returned by the server invalid. Have you added an echo or print somewhere that shows the name of the database being connected to?
Allan
Thank you very much Allan. It works now.
There was an echo in query.php : echo "connect database : " . $db;
It was generated by the generator, It's good to know and comment the line.
Could you confirm which query.php file please? I've just had a look, but I couldn't see that string anywhere.
Thanks,
Allan
I found It in this directory :
php\lib\Database\Driver\Sqlserver\Query.php
line 63 for me.