I'm having an issue with inline editor. Am I supposed to use the PHP server-side processing?
I'm having an issue with inline editor. Am I supposed to use the PHP server-side processing?
GlueData Accounts
Posts: 5Questions: 2Answers: 0
I don't have a test case to link to.
Below is my code:
$scope.title = "Users";
$(document).ready(function(){
var editor;
$('.sidenav').sidenav();
$('select').formSelect();
$('.dropdown-trigger').dropdown();
$('#users').on( 'click', 'tbody tr td', function (e) {
editor.inline( this );
} );
var init = function () {
$.ajax({
url:"./php/getUsers.php", //the page containing php script
method: "GET", //request type
error: function() {
$('#info').html('<p>An error has occurred</p>');
},
success:function(result){
$scope.data = JSON.parse(result);
console.log($scope.data);
editor = new $.fn.dataTable.Editor( {
ajax: "./php/updateUser.php",
table: "#users",
idSrc: "USER_SK",
fields: [
{
label: "User Sk:",
name: "USER_SK"
}, {
label: "User Nk:",
name: "USER_NK"
}, {
label: "User Alias:",
name: "USER_ALIAS"
}, {
label: "User Name:",
name: "USER_NAME"
}, {
label: "User Surname:",
name: "USER_SURNAME"
}, {
label: "User Org Fk:",
name: "USER_ORG_FK"
}, {
label: "User Type Fk:",
name: "USER_TYPE_FK"
}, {
label: "Update Date:",
name: "UPDATE_DATE"
}, {
label: "Create Date:",
name: "CREATE_DATE"
}, {
label: "User Status:",
name: "USER_STATUS"
}, {
label: "Failed Login Counter:",
name: "FAILED_LOGIN_COUNTER"
}
]
} );
var table = $('#users').DataTable( {
data: $scope.data,
dom: 'Bfrtip',
columns: [
{
data: "USER_SK"
},
{
data: "USER_NK"
},
{
data: "USER_ALIAS"
},
{
data: "USER_NAME"
},
{
data: "USER_SURNAME"
},
{
data: "USER_ORG_FK"
},
{
data: "USER_TYPE_FK"
},
{
data: "UPDATE_DATE"
},
{
data: "CREATE_DATE"
},
{
data: "USER_STATUS"
},
{
data: "FAILED_LOGIN_COUNTER"
},
// etc
],
select: true,
buttons: [
{ extend: "create", editor: editor },
{
extend: 'selected',
text: 'Edit',
action: function () {
var indexes = table.rows( {selected: true} ).indexes();
editor.edit( indexes, {
title: 'Edit',
buttons: indexes.length === 1 ?
backNext :
'Save'
} );
}
},
{ extend: "remove", editor: editor },
{
extend: 'collection',
text: 'Export',
buttons: [
'copy',
'excel',
'csv',
'pdf',
'print'
]
}
],
formOptions: {
inline: {
onBlur: 'submit',
submit: 'allIfChanged'
}
},
editOnFocus: true,
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]]
} );
}
});
}
var backNext = [
{
text: "<",
action: function (e) {
// On submit, find the currently selected row and select the previous one
this.submit( function () {
var indexes = table.rows( {search: 'applied'} ).indexes();
var currentIndex = table.row( {selected: true} ).index();
var currentPosition = indexes.indexOf( currentIndex );
if ( currentPosition > 0 ) {
table.row( currentIndex ).deselect();
table.row( indexes[ currentPosition-1 ] ).select();
}
// Trigger editing through the button
table.button( 1 ).trigger();
}, null, null, false );
}
},
'Save',
{
text: ">",
action: function (e) {
// On submit, find the currently selected row and select the next one
this.submit( function () {
var indexes = table.rows( {search: 'applied'} ).indexes();
var currentIndex = table.row( {selected: true} ).index();
var currentPosition = indexes.indexOf( currentIndex );
if ( currentPosition < indexes.length-1 ) {
table.row( currentIndex ).deselect();
table.row( indexes[ currentPosition+1 ] ).select();
}
// Trigger editing through the button
table.button( 1 ).trigger();
}, null, null, false );
}
}
];
init();
On submit of inline edit, I get "System error occurred". However my data is updated in my database, I can't seem to find the solution to it.
To my understanding the data should instantly be updated without having to refresh the page.
This discussion has been closed.
Answers
I wonder what issue you're having.
EDIT: You have edited your post since I posted.
Could you post the JSON being sent to the server on the submit, and the response from the server, please,
Colin
Is this sufficient information?
I failed to note that this error occurs when I try create, edit and delete any data.
All the actions do the right thing in the database, but show 'system error has occurred' on button click.
Here is my PHP file
Almost! Can you click on the "Response" tab (which is just above the "General" at the top of the screenshot) and then show me that? The error message you are seeing means that there is invalid JSON being returned from the server - hopefully it shows an error message inease.
Allan