Can't get a select to work in Editor from server side
Can't get a select to work in Editor from server side
I'm trying to create a select for Rolodex.idAccount
field pulling AccountName
from a MySQL database Account
. I have followed the exact stepa showed in the examples:
https://editor.datatables.net/examples/advanced/deepObjects.html
Once I do the same steps I get:
DataTables warning: table id=example - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1
My code:
$(document).ready(function() {
editor = new $.fn.dataTable.Editor( {
ajax: "rolodex_DTS.php",
table: "#example",
fields: [ {
label: "First name:",
name: "Rolodex.FirstName"
}, {
label: "Last name:",
name: "Rolodex.LastName"
}, {
label: "Notes:",
name: "Rolodex.Notes"
}, {
label: "Birthday:",
name: "Rolodex.Birthday",
type: "date"
}, {
label: "Account:",
name: "Rolodex.idAccount",
type: "select"
}, {
label: "Email Address:",
name: "EmailAddress.EmailAddress"
}
]
} );
```
<?php
// DataTables PHP library
include $_SERVER["DOCUMENT_ROOT"] . '/Editor-PHP-1.4.0/php/DataTables.php';
// Alias Editor classes so they are easy to use
use
DataTables\Editor,
DataTables\Editor\Field,
DataTables\Editor\Format,
DataTables\Editor\Join,
DataTables\Editor\Validate;
// Build our Editor instance and process the data coming from _POST
Editor::inst( $db, 'Rolodex', 'idRolodex' )
->fields(
Field::inst( 'Account.AccountName' ),
Field::inst( 'Rolodex.idAccount' )
->options( 'Account', 'idAccount', 'AccountName' ),
Field::inst( 'Rolodex.FirstName' )->validator( 'Validate::notEmpty' ),
Field::inst( 'Rolodex.LastName' )->validator( 'Validate::notEmpty' ),
Field::inst( 'Rolodex.Birthday' )
->validator( 'Validate::dateFormat', array(
"format" => Format::DATE_ISO_8601,
"message" => "Please enter a date in the format yyyy-mm-dd"
) )
->getFormatter( 'Format::date_sql_to_format', Format::DATE_ISO_8601 )
->setFormatter( 'Format::date_format_to_sql', Format::DATE_ISO_8601 )
)
->leftJoin( 'Account', 'Account.idAccount', '=', 'Rolodex.idAccount' )
->leftJoin( 'EmailAddress', 'EmailAddress.idEmailAddress', '=', 'Rolodex.idEmailAddressMain' )
->process( $_POST )
->json();
Thank you!
Answers
What do you get back from the server if it is not valid JSON?
Allan
If I removed:
->options( 'Account', 'idAccount', 'AccountName' ),
It works fine and it displays the account name correctly.
Once I add it I get blank as returned.
If there is nothing in the Ajax response, you'll probably need to check the HTTP server's error logs. That should have a message in it indicating what the issue is.
Could you show me that message (assuming there is one - there should be!).
Regards,
Allan