Standalone Editor Not Updating
Standalone Editor Not Updating
webvision
Posts: 10Questions: 7Answers: 0
I'm implementing a standalone editor and it's not updating. Can anyone see the problem?
Javascript:
var Heditor;
$(document).ready(function() {
Heditor = new $.fn.dataTable.Editor( {
ajax: "/report_modules/pf2/act/PF2_Head_Standalone.php?fid=1",
fields: [ {
label: "Invoice #:",
name: "f_invoice_number"
}, {
label: "Invoice Date:",
name: "f_date",
type: "date",
dateFormat: "yy-mm-dd"
}, {
label: "Location:",
name: "f_location"
}, {
label: "County:",
name: "f_county"
}, {
label: "State:",
name: "f_state"
}, {
label: "P.O. Number:",
name: "f_po_number"
}, {
label: "Operator",
name: "f_operator"
}, {
label: "Contract/Rig",
name: "f_contract_rig"
}, {
label: "Authorized By",
name: "f_authorized_by"
}
]
} );
/*$('#edit').on( 'click', function () {
Heditor
.buttons( {
label: "Save",
fn: function () { this.submit(); }
} )
.edit(1);
} );*/
$('[data-editor-field]').on( 'click', function (e) {
Heditor.inline( this, {
buttons: '_basic'
} );
} );
} );
HTML:
<dl>
<dt>Invoice #:</dt>
<dd data-editor-field="f_invoice_number">12345</dd>
<dt>Date:</dt>
<dd><span data-editor-field="f_date">2014-09-09</span></dd>
<dt>P.O. Number:</dt>
<dd data-editor-field="f_po_number">54321</dd>
<dt>County:</dt>
<dd data-editor-field="f_county"></dd>
<dt>State:</dt>
<dd data-editor-field="f_state"></dd>
<dt>Location:</dt>
<dd data-editor-field="f_location"></dd>
<dt>Contract/Rig:</dt>
<dd data-editor-field="f_contract_rig"></dd>
<dt>Authorized By:</dt>
<dd data-editor-field="f_authorized_by"></dd>
<dd><button id="edit">Edit</button></dd>
</dl>
Server Side:
if ( isset($_POST['action']) && ( $_POST['action'] === 'create' || $_POST['action'] === 'edit' ) ) {
$_POST['data']['f_id'] = htmlspecialchars($_GET["fid"]);
}
Editor::inst( $db, 'tblPF2_Head' )
->fields(
Field::inst( 'id' )->set( false ),
Field::inst( 'f_po_number' )->validator( 'Validate::notEmpty' ),
Field::inst( 'f_operator' ),
Field::inst( 'f_contract_rig' ),
Field::inst( 'f_authorized_by' ),
Field::inst( 'f_location' ),
Field::inst( 'f_county' ),
Field::inst( 'f_state' ),
Field::inst( 'f_date' )
->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 )
)->where( $key = "id", $value = htmlspecialchars($_GET["fid"]), $op = '=' )
->process( $_POST )
->json();
This discussion has been closed.
Answers
I was able to get the basic edit button working. Unfortunately, I'm not able to get inline working. How do I pass the ID for the inline editing to work?
Hi,
I'm afraid you've come across one of the "clunky" parts of Editor here... The chunkiness will be resolved in a future update - but for the moment what you need to do is use the
preSubmit
event to attach the id.For example you might have:
The reason for this is that the first parameter for
inline()
is the identifier for which field to edit. In DataTables it is possible to get the id from that node, but that isn't the case in standalone mode.To resolve this there are three options I can think of:
Would be interested in your thoughts.
Allan