Adding a dropdown box breaks updating DB in Editor

Adding a dropdown box breaks updating DB in Editor

davidjmorindavidjmorin Posts: 101Questions: 31Answers: 0
edited June 2020 in Free community support

I inserted a dropdown box into my inline table. After doing this I see the dropdown, I can select, but it does not update the DB. If I remove the dropdown it works fine. Any suggestions?

$(document).ready(function() {
    var editor = new $.fn.dataTable.Editor( {
        ajax: 'php/table.rma_submissions.php',
        table: '#rma_submissions',
        fields: [
            {
                "label": "ID:",
                "name": "rma_submissions.id"
            },
            {
                "label": "timestamp:",
                "name": "rma_submissions.timestamp",
                "type": "datetime",
                "format": "YYYY-MM-DD HH:mm:ss"
            },
            {
                "label": "Location:",
                "name": "rma_submissions.location"
            },
            {
                "label": "orig_invoice:",
                "name": "rma_submissions.orig_invoice"
            },
            {
                "label": "all_accessories:",
                "name": "rma_submissions.all_accessories"
            },
            {
                "label": "new_submission:",
                "name": "rma_submissions.new_submission"
            },
            {
                "label": "man_sku:",
                "name": "rma_submissions.man_sku"
            },
            {
                "label": "device_id:",
                "name": "rma_submissions.device_id"
            },

            {
                "label": "defective_oob:",
                "name": "rma_submissions.defective_oob"
            },
            {
                "label": "original_sales_date:",
                "name": "rma_submissions.original_sales_date"
            },
            {
                "label": "vendor:",
                "name": "rma_submissions.vendor"
            },
            {
                "label": "email:",
                "name": "rma_submissions.email"
            },
            {
                "label": "device_man:",
                "name": "rma_submissions.device_man"
            },
            {
                "label": "district:",
                "name": "rma_submissions.district"
            },
            {
                "label": "rma_number:",
                "name": "rma_submissions.rma_number"
            }
            ,{
            "label": "Paid?:",
            "name": "rma_submissions.paid",
            "type": "select",
            "options": [
                { "label": "Yes", "value": "Yes" },
                { "label": "No", "value": "No" }
            ]
        },

            {
                "label": "paid_date:",
                "name": "rma_submissions.paid_date"
            }
        ]
    } );
$db->sql( "CREATE TABLE IF NOT EXISTS `rma_submissions` (
    `ID` int(10) NOT NULL auto_increment,
    `id` varchar(255),
    `timestamp` datetime,
    `location` varchar(255),
    `orig_invoice` varchar(255),
    `all_accessories` varchar(255),
    `new_submission` varchar(255),
    `man_sku` varchar(255),
    `device_id` varchar(255),
    `failure_desc` varchar(255),
    `defective_oob` varchar(255),
    `original_sales_date` varchar(255),
    `vendor` varchar(255),
    `email` varchar(255),
    `device_man` varchar(255),
    `district` varchar(255),
    `rma_number` varchar(255),
    `paid` varchar(255),
    `paid_date` varchar(255),
    PRIMARY KEY( `ID` )
);" );
Editor::inst( $db, 'rma_submissions', 'ID' )
    ->fields(
        Field::inst( 'rma_submissions.id' ),
        Field::inst( 'rma_submissions.timestamp' )
            ->validator( Validate::dateFormat( 'Y-m-d H:i:s' ) )
            ->getFormatter( Format::datetime( 'Y-m-d H:i:s', 'Y-m-d H:i:s' ) )
            ->setFormatter( Format::datetime( 'Y-m-d H:i:s', 'Y-m-d H:i:s' ) ),
        Field::inst( 'rma_submissions.location' ),
        Field::inst( 'rma_submissions.orig_invoice' ),
        Field::inst( 'rma_submissions.all_accessories' ),
        Field::inst( 'rma_submissions.new_submission' ),
        Field::inst( 'rma_submissions.man_sku' ),
        Field::inst( 'rma_submissions.device_id' ),
        Field::inst( 'rma_submissions.failure_desc' ),
        Field::inst( 'rma_submissions.defective_oob' ),
        Field::inst( 'rma_submissions.original_sales_date' ),
        Field::inst( 'rma_submissions.vendor' ),
        Field::inst( 'rma_submissions.email' ),
        Field::inst( 'rma_submissions.device_man' ),
        Field::inst( 'rma_submissions.district' ),
        Field::inst( 'rma_submissions.rma_number' ),
        Field::inst( 'rma_submissions.paid' ),
        Field::inst( 'rma_submissions.paid_date' ),
        Field::inst( 'rma_reasons.reason_description' ),
    )
    ->leftJoin( 'rma_reasons', 'rma_reasons.reason_code', '=', 'rma_submissions.failure_desc' )
    ->process( $_POST )
    ->json();

This question has an accepted answers - jump to answer

Answers

  • rf1234rf1234 Posts: 3,055Questions: 88Answers: 424

    Dropdowns in inline editing don't really work. Please search the forum for Allan's comments on this. I remember removing them because of this. It is a browser problem if I recall it correctly.

  • allanallan Posts: 64,052Questions: 1Answers: 10,559 Site admin
    Answer ✓

    Dropdowns with inline editing need a way to be submitted. Most commonly you can use onBlur: 'submit' as shown in this example - last column in the table is a dropdown.

    How are you triggering the inline editing - are you using onBlur?

    Allan

  • davidjmorindavidjmorin Posts: 101Questions: 31Answers: 0

    Allan,

    I have corrected this issue. I had onBlur but it was the browser I was using preventing it. Brave browser is not good for this lol. Thanks again

This discussion has been closed.