Modify primary key via Editor
Modify primary key via Editor
Hi,
we have an Editor licence (PHP server side). I'm trying to create an app where I can edit the primary key of a table (it's not the standard auto incremental id, but a varchar string meaningful for the application). I tried several approaches by the usual error is **DataTables warning: table id=BB_CONF_CDS - Requested unknown parameter '0' for row 0, column 0. For more information about this error, please see http://datatables.net/tn/4**
Server Side code:
Editor::inst( $db, 'bb_conf_cds','TEMPLATE_COURSE_KEY' )
->fields(
Field::inst( 'TEMPLATE_COURSE_KEY', 'alias' ),
Field::inst( 'TERM_KEY' )
)
->process( $_POST )
->json();
Client side JS
$(document).ready(function() {
var editor = new $.fn.dataTable.Editor( {
ajax: 'ws-mariadb.php',
table: '#BB_CONF_CDS',
} );
var table = $('#BB_CONF_CDS').DataTable( {
dom: 'Bfrtip',
ajax: 'ws-mariadb.php',
select: true,
lengthChange: false,
buttons: [
{ extend: 'create', editor: editor },
{ extend: 'edit', editor: editor },
{ extend: 'remove', editor: editor }
]
} );
} );
HTML
<table cellpadding="0" cellspacing="0" border="0" class="display" id="BB_CONF_CDS" width="100%">
<thead>
<tr>
<th>TEMPLATE_COURSE_KEY</th>
<th>TERM_KEY</th>
</tr>
</thead>
</table>
This question has an accepted answers - jump to answer
This discussion has been closed.
Answers
What is going on when the error occurs?
Have you followed the troubleshooting steps provide at the link in the error?
http://datatables.net/tn/4
Let us know what you find.
Kevin
Could you also use the debugger to give me a trace please - click the Upload button and then let me know what the debug code is.
Thanks,
Allan
I found the issue, not clear why but in the JS snippet I had to declare the column names used both for the editor and the datatable.
Why I cannot skip this declaration? Basically now if I need to add a column this needs to be configured in 4 places (PHP, HTML, 2 times in JS).
Both DataTables and Editor need to know how to map the columns to the data, so that's why they need to be declared.
Colin