Quantcast
Channel: Recent Discussions — DataTables forums
Viewing all articles
Browse latest Browse all 81728

Editor - Not updating the table after a new record is posted

$
0
0

Hi

Currently unable to add new records to an existing datatable. The records are successfully posted, and can be seen after a refresh, but are not viewable after the post.

Any help would be gratefully received. 6 days left of the trial here, which means I have to fix this bug and convince my boss to purchase in that time.

Here is my js :


$(document).ready(function() { var tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); var editor = new $.fn.dataTable.Editor( { ajax: '/editor-php/controllers/quotes.php', table: '#example', fields: [ { label: 'id', name: 'quote.id', type: 'hidden'}, { label: 'Name', name: 'quote.client_name'}, { label: 'Email', name: 'quote.email'}, { label: 'Phone', name: 'quote.telephone'}, { label: 'Quote Fees', name: 'quote.quote_fees'}, { label: 'Quote Dbs', name: 'quote.quote_dbs'}, { label: 'Source', name: 'quote.source', type: 'select'}, { label: 'Date Received', name: 'quote.date_received', type: 'datetime', def: new Date().toJSON().slice(0,10).replace(/-/g,'-')}, { label: 'Follow Up Date', name: 'quote.follow_up_date', type: 'datetime', def: tomorrow.toJSON().slice(0,10).replace(/-/g,'-')}, { label: 'Case Type', name: 'quote.case_file_type', type: 'select', def: '2'}, { label: 'Status', name: 'quote.status', type: 'select', def:'1'}, { label: 'Quote Sales', name: 'quote.sales', type: 'select'}, { label: 'Notes', name: 'quote.notes'}, ] } ); // Activate an inline edit on click of a table cell $('#example').on('click', 'tbody td:not(:first-child):not(:nth-child(14))', function (e) { editor.inline(this); }); $('#example').DataTable({ dom: "Bfrtip", ajax: "/editor-php/controllers/quotes.php", order: [[7, 'desc']], columns: [ { data: null, defaultContent: '', className: 'select-checkbox', orderable: false }, {data: "quote.client_name"}, {data: "quote.email"}, {data: "quote.telephone"}, {data: "quote.quote_fees", render: $.fn.dataTable.render.number(',', '.', 0, '£')}, {data: "quote.quote_dbs", render: $.fn.dataTable.render.number(',', '.', 0, '£')}, {data: "source.name", editField: "quote.source" }, {data: "quote.date_received"}, {data: "quote.follow_up_date"}, {data: "case_file_type.name", editField: "quote.case_file_type"}, {data: "quote_status.name", editField: "quote.status"}, {data: "quote_sales.name", editField: "quote.sales"}, {data: "quote.notes"}, { data: null, defaultContent: '<input type="button" class="name" id="name" value=" Create Case "/>', orderable: false }, ], select: { style: 'os', selector: 'td:first-child' }, buttons: [ {extend: "create", editor: editor}, {extend: "edit", editor: editor}, {extend: "remove", editor: editor} ] }); $('#example tbody').on('click', '.name', function () { var row = $(this).closest('tr'); var id = row[0].id.replace('row_',''); window.location.href = "/case-files/createFromQuote/" + id; }); });

And here is the php bit.

<?php

/*
 * 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::inst( $db, 'quote' )
    ->fields(
        Field::inst('quote.id'),
        Field::inst('quote.client_name')
            ->validator(Validate::notEmpty(ValidateOptions::inst()
                ->message( 'A Client Name is required' )
            )),
        Field::inst('quote.email')
            ->validator(Validate::notEmpty(ValidateOptions::inst()
                ->message('Please enter an email address')
            )),
        Field::inst('quote.telephone')
            ->validator(Validate::notEmpty(ValidateOptions::inst()
                ->message('Please enter a phone number')
            )),
        Field::inst('quote.quote_fees'),
        Field::inst('quote.quote_dbs'),
        Field::inst('quote.date_received')
            ->validator(Validate::dateFormat('Y-m-d'))
            ->getFormatter(Format::dateSqlToFormat('Y-m-d'))
            ->setFormatter(Format::dateFormatToSql('Y-m-d')),
        Field::inst('quote.follow_up_date')
            ->validator(Validate::dateFormat('Y-m-d'))
            ->getFormatter(Format::dateSqlToFormat('Y-m-d'))
            ->setFormatter(Format::dateFormatToSql('Y-m-d')),
        Field::inst('quote.notes'),
        Field::inst('quote.source')
            ->options(Options::inst()
                ->table('source')
                ->value('id')
                ->label('name')
            )
            ->validator(Validate::dbValues()),
        Field::inst('quote.case_file_type')
            ->options(Options::inst()
                ->table('case_file_type')
                ->value('id')
                ->label('name')
            )
            ->validator(Validate::dbValues()),
        Field::inst('source.name'),
        Field::inst('case_file_type.name'),
        Field::inst('quote.status')
            ->options(Options::inst()
                ->table('quote_status')
                ->value('id')
                ->label('name')
            )
            ->validator(Validate::dbValues()),
        Field::inst('quote_status.name'),
        Field::inst('quote.sales')
            ->options(Options::inst()
                ->table('quote_sales')
                ->value('id')
                ->label('name')
            )
            ->validator(Validate::dbValues()),
        Field::inst('quote_sales.name')
    )
    ->leftJoin('source', 'source.id', '=', 'quote.source')
    ->leftJoin('case_file_type', 'case_file_type.id', '=', 'quote.case_file_type')
    ->leftJoin('quote_status', 'quote_status.id','=','quote.status')
    ->leftJoin('quote_sales', 'quote_sales.id','=','quote.sales')
    ->process( $_POST )
    ->json();


Viewing all articles
Browse latest Browse all 81728

Trending Articles