Datatable wont edit the values in row
Datatable wont edit the values in row
alexisgarci11
Posts: 7Questions: 2Answers: 0
in Editor
Hi guys, i have installed and loaded all the files(at least i think) and the datatable is displaying ok but when i try to edit a value in row or in the edit window it wont give me any errors but wont update it on the database, so i edit the value, press ENTER and nothing, the value returns to its original. I get no JS errors and the XHR comes alright. Anyone can help? thanks
<?php
$mysqli = new mysqli("127.0.0.1", "root", "", "datatables_demo");
// Check connection
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
/*
* Example PHP implementation used for the index.html example
*/
// DataTables PHP library
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;
// Build our Editor instance and process the data coming from _POST
$editor = Editor::inst($db, 'datatables_demo')
->fields(
Field::inst('first_name')
->validator(Validate::notEmpty(ValidateOptions::inst()
->message('A first name is required')
)),
Field::inst('last_name')
->validator(Validate::notEmpty(ValidateOptions::inst()
->message('A last name is required')
)),
Field::inst('position'),
Field::inst('email')
->validator(Validate::email(ValidateOptions::inst()
->message('Please enter an e-mail address')
)),
Field::inst('office'),
Field::inst('extn'),
Field::inst('age')
->validator(Validate::numeric())
->setFormatter(Format::ifEmpty(null)),
Field::inst('salary')
->validator(Validate::numeric())
->setFormatter(Format::ifEmpty(null)),
Field::inst('start_date')
->validator(Validate::dateFormat('Y-m-d'))
->getFormatter(Format::dateSqlToFormat('Y-m-d'))
->setFormatter(Format::dateFormatToSql('Y-m-d'))
)
/*->debug(true)*/
/* ->process($_POST)*/
->json();
;?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="jquery.dataTables.min.css"/>
<link rel="stylesheet" href="buttons.dataTables.min.css"/>
<link rel="stylesheet" href="select.dataTables.min.css"/>
<link rel="stylesheet" href="dataTables.dateTime.min.css"/>
<link rel="stylesheet" href="editor.dataTables.min.css"/>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jqc-1.12.4/dt-1.10.24/b-1.7.0/sl-1.3.3/datatables.min.css"/>
<link rel="stylesheet" type="text/css" href="Editor-2.0.1/css/editor.dataTables.css">
<script src="jquery-3.5.1.js"></script>
<script src="jquery.dataTables.min.js"></script>
<script src="dataTables.buttons.min.js"></script>
<script src="dataTables.select.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/jqc-1.12.4/dt-1.10.24/b-1.7.0/sl-1.3.3/datatables.min.js"></script>
<script type="text/javascript" src="Editor-2.0.1/js/dataTables.editor.js"></script>
</head>
<body class="nav-toggle">
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th></th>
<th>First name</th>
<th>Last name</th>
<th>Position</th>
<th>Office</th>
<th width="18%">Start date</th>
<th>Salary</th>
</tr>
</thead>
</table>
<script>
var editor; // use a global for the submit and return data rendering in the examples
$(document).ready(function() {
editor = new $.fn.dataTable.Editor( {
ajax: "staff.php",
table: "#example",
fields: [ {
label: "First name:",
name: "first_name"
}, {
label: "Last name:",
name: "last_name"
}, {
label: "Position:",
name: "position"
}, {
label: "Office:",
name: "office"
}, {
label: "Extension:",
name: "extn"
}, {
label: "Start date:",
name: "start_date",
}, {
label: "Salary:",
name: "salary"
}
]
} );
// Activate an inline edit on click of a table cell
$('#example').on( 'click', 'tbody td:not(:first-child)', function (e) {
editor.inline( this );
} );
$('#example').DataTable( {
dom: "Bfrtip",
ajax: "staff.php",
order: [[ 1, 'asc' ]],
columns: [
{
data: null,
defaultContent: '',
className: 'select-checkbox',
orderable: false
},
{ data: "first_name" },
{ data: "last_name" },
{ data: "position" },
{ data: "office" },
{ data: "start_date" },
{ data: "salary", render: $.fn.dataTable.render.number( ',', '.', 0, '$' ) }
],
select: {
style: 'os',
selector: 'td:first-child'
},
buttons: [
{ extend: "create", editor: editor },
{ extend: "edit", editor: editor },
{ extend: "remove", editor: editor }
]
} );
} );
</script>
</body>
</html>
This discussion has been closed.
Answers
That looks like it should be behaving. Could you post the XHR to the server, and the response, please, or if possible could you link to the page,
Colin
ill leave the link to the files. https://we.tl/t-VP1Son3ezW
headers
data[row_5][first_name]: Airisd
action: edit
Response
`{"data":[{"id":"1","first_name":"Tiger","last_name":"Nixon","position":"System Architect","email":"t.nixon@datatables.net","office":"Edinburgh","start_date":"2011-04-25 00:00:00","age":"61","salary":"320800","seq":"2","extn":"5421","DT_RowId":"row_1"},{"id":"2","first_name":"Garrett","last_name":"Winters","position":"Accountant","email":"g.winters@datatables.net","office":"Tokyo","start_date":"2011-07-25 00:00:00","age":"63","salary":"170750","seq":"22","extn":"8422","DT_RowId":"row_2"},{"id":"3","first_name":"Ashton","last_name":"Cox","position":"Junior Technical Author","email":"a.cox@datatables.net","office":"San Francisco","start_date":"2009-01-12 00:00:00","age":"66","salary":"86000","seq":"6","extn":"1562","DT_RowId":"row_3"},{"id":"4","first_name":"Cedric","last_name":"Kelly","position":"Senior Javascript Developer","email":"c.kelly@datatables.net","office":"Edinburgh","start_date":"2012-03-29 00:00:00","age":"22","salary":"433060","seq":"41","extn":"6224","DT_RowId":"row_4"},{"id":"5","first_name":"Airi","last_name":"Satou","position":"Accountant","email":"a.satou@datatables.net","office":"Tokyo","start_date":"2008-11-28 00:00:00","age":"33","salary":"162700","seq":"55","extn":"5407","DT_RowId":"row_5"},{"id":"6","first_name":"Brielle","last_name":"Williamson","position":"Integration Specialist","email":"b.williamson@datatables.net","office":"New York","start_date":"2012-12-02 00:00:00","age":"61","salary":"372000","seq":"21","extn":"4804","DT_RowId":"row_6"},{"id":"7","first_name":"Herrod","last_name":"Chandler","position":"Sales Assistant","email":"h.chandler@datatables.net","office":"San Francisco","start_date":"2012-08-06 00:00:00","age":"59","salary":"137500","seq":"46","extn":"9608","DT_RowId":"row_7"},{"id":"8","first_name":"Rhona","last_name":"Davidson","position":"Integration Specialist","email":"r.davidson@datatables.net","office":"Tokyo","start_date":"2010-10-14 00:00:00","age":"55","salary":"327900","seq":"50","extn":"6200","DT_RowId":"row_8"},{"id":"9","first_name":"Colleen","last_name":"Hurst","position":"Javascript Developer","email":"c.hurst@datatables.net","office":"San Francisco","start_date":"2009-09-15 00:00:00","age":"39","salary":"205500","seq":"26","extn":"2360","DT_RowId":"row_9"},{"id":"10","first_name":"Sonya","last_name":"Frost","position":"Software Engineer","email":"s.frost@datatables.net","office":"Edinburgh","start_date":"2008-12-13 00:00:00","age":"23","salary":"103600","seq":"18","extn":"1667","DT_RowId":"row_10"},{"id":"11","first_name":"Jena","last_name":"Gaines","position":"Office Manager","email":"j.gaines@datatables.net","office":"London","start_date":"2008-12-19 00:00:00","age":"30","salary":"90560","seq":"13","extn":"3814","DT_RowId":"row_11"},{"id":"12","first_name":"Quinn","last_name":"Flynn","position":"Support Lead","email":"q.flynn@datatables.net","office":"Edinburgh","start_date":"2013-03-03 00:00:00","age":"22","salary":"342000","seq":"23","extn":"9497","DT_RowId":"row_12"},{"id":"13","first_name":"Charde","last_name":"Marshall","position":"Regional Director","email":"c.marshall@datatables.net","office":"San Francisco","start_date":"2008-10-16 00:00:00","age":"36","salary":"470600","seq":"14","extn":"6741","DT_RowId":"row_13"},{"id":"14","first_name":"Haley","last_name":"Kennedy","position":"Senior Marketing Designer","email":"h.kennedy@datatables.net","office":"London","start_date":"2012-12-18 00:00:00","age":"43","salary":"313500","seq":"12","extn":"3597","DT_RowId":"row_14"},{"id":"15","first_name":"Tatyana","last_name":"Fitzpatrick","position":"Regional Director","email":"t.fitzpatrick@datatables.net","office":"London","start_date":"2010-03-17 00:00:00","age":"19","salary":"385750","seq":"54","extn":"1965","DT_RowId":"row_15"},{"id":"16","first_name":"Michael","last_name":"Silva","position":"Marketing Designer","email":"m.silva@datatables.net","office":"London","start_date":"2012-11-27 00:00:00","age":"66","salary":"198500","seq":"37","extn":"1581","DT_RowId":"row_16"},{"id":"17","first_name":"Paul","last_name":"Byrd","position":"Chief Financial Officer (CFO)","email":"p.byrd@datatables.net","office":"New York","start_date":"2010-06-09 00:00:00","age":"64","salary":"725000","seq":"32","extn":"3059","DT_RowId":"row_17"},{"id":"18","first_name":"Gloria","last_name":"Little","position":"Systems Administrator","email":"g.little@datatables.net","office":"New York","start_date":"2009-04-10 00:00:00","age":"59","salary":"237500","seq":"35","extn":"1721","DT_RowId":"row_18"},{"id":"19","first_name":"Bradley","last_name":"Greer","position":"Software Engineer","email":"b.greer@datatables.net","office":"London","start_date":"2012-10-13 00:00:00","age":"41","salary":"132000","seq":"48","extn":"2558","DT_RowId":"row_19"},{"id":"20","first_name":"Dai","last_name":"Rios","position":"Personnel Lead","email":"d.rios@datatables.net","office":"Edinburgh","start_date":"2012-09-26 00:00:00","age":"35","salary":"217500","seq":"45","extn":"2290","DT_RowId":"row_20"},{"id":"21","first_name":"Jenette","last_name":"Caldwell","position":"Development Lead","email":"j.caldwell@datatables.net","office":"New York","start_date":"2011-09-03 00:00:00","age":"30","salary":"345000","seq":"17","extn":"1937","DT_RowId":"row_21"},{"id":"22","first_name":"Yuri","last_name":"Berry","position":"Chief Marketing Officer (CMO)","email":"y.berry@datatables.net","office":"New York","start_date":"2009-06-25 00:00:00","age":"40","salary":"675000","seq":"57","extn":"6154","DT_RowId":"row_22"},{"id":"23","first_name":"Caesar","last_name":"Vance","position":"Pre-Sales Support","email":"c.vance@datatables.net","office":"New York","start_date":"2011-12-12 00:00:00","age":"21","salary":"106450","seq":"29","extn":"8330","DT_RowId":"row_23"},{"id":"24","first_name":"Doris","last_name":"Wilder","position":"Sales Assistant","email":"d.wilder@datatables.net","office":"Sydney","start_date":"2010-09-20 00:00:00","age":"23","salary":"85600","seq":"56","extn":"3023","DT_RowId":"row_24"},{"id":"25","first_name":"Angelica","last_name":"Ramos","position":"Chief Executive Officer (CEO)","email":"a.ramos@datatables.net","office":"London","start_date":"2009-10-09 00:00:00","age":"47","salary":"1200000","seq":"36","extn":"5797","DT_RowId":"row_25"},{"id":"26","first_name":"Gavin","last_name":"Joyce","position":"Developer","email":"g.joyce@datatables.net","office":"Edinburgh","start_date":"2010-12-22 00:00:00","age":"42","salary":"92575","seq":"5","extn":"8822","DT_RowId":"row_26"},{"id":"27","first_name":"Jennifer","last_name":"Chang","position":"Regional Director","email":"j.chang@datatables.net","office":"Singapore","start_date":"2010-11-14 00:00:00","age":"28","salary":"357650","seq":"51","extn":"9239","DT_RowId":"row_27"},{"id":"28","first_name":"Brenden","last_name":"Wagner","position":"Software Engineer","email":"b.wagner@datatables.net","office":"San Francisco","start_date":"2011-06-07 00:00:00","age":"28","salary":"206850","seq":"20","extn":"1314","DT_RowId":"row_28"},{"id":"29","first_name":"Fiona","last_name":"Green","position":"Chief Operating Officer (COO)","email":"f.green@datatables.net","office":"San Francisco","start_date":"2010-03-11 00:00:00","age":"48","salary":"850000","seq":"7","extn":"2947","DT_RowId":"row_29"},{"id":"30","first_name":"Shou","last_name":"Itou","position":"Regional Marketing","email":"s.itou@datatables.net","office":"Tokyo","start_date":"2011-08-14 00:00:00","age":"20","salary":"163000","seq":"1","extn":"8899","DT_RowId":"row_30"},.......
Hi,
Thanks for the files. Which file am I looking at specifically here? There is a
staff.php
file but that is just a SELECT from the database.server.php
is using the Editor server-side libraries, but it doesn't appear to be getting called anywhere.Allan
Oh sorry i forgot to tell you, i guess everything is in the index.php.
Thanks. You want to split that into two files - one for the HTML and one for the PHP. The HTML one will display the table (and include the needed Javascript, etc). The other file will do the Ajax processing and should contain the
Editor::inst(...)
code.The other point to make is that you don't need to do
new mysqli(...)
if you have correctly configured theconfig.php
file. Indeed thenew mysqli(...)
won't work, since our libraries use PDO, not Mysqli.I'd suggest trying Generator which can build all of the files that you need and put them into the right places.
Allan
that msqli is there but its not to work with the datatables is for other things, i have the config file set up with the database. Ill split it into diferente files and give it a try. thanks dude!