diff --git a/js/db_structure.js b/js/db_structure.js index 7e0ce8ff9f..0b89dd64ea 100644 --- a/js/db_structure.js +++ b/js/db_structure.js @@ -22,8 +22,6 @@ * Unbind all event handlers before tearing down a page */ AJAX.registerTeardown('db_structure.js', function () { - $("span.fkc_switch").unbind('click'); - $('#fkc_checkbox').unbind('change'); $(document).off('click', "a.truncate_table_anchor.ajax"); $(document).off('click', "a.drop_table_anchor.ajax"); $(document).off('click', '#real_end_input'); @@ -245,27 +243,6 @@ AJAX.registerOnload('db_structure.js', function () { return false; } }); - /** - * Event handler for 'Foreign Key Checks' disabling option - * in the drop table confirmation form - */ - $("span.fkc_switch").click(function (event) { - if ($("#fkc_checkbox").prop('checked')) { - $("#fkc_checkbox").prop('checked', false); - $("#fkc_status").html(PMA_messages.strForeignKeyCheckDisabled); - return; - } - $("#fkc_checkbox").prop('checked', true); - $("#fkc_status").html(PMA_messages.strForeignKeyCheckEnabled); - }); - - $('#fkc_checkbox').change(function () { - if ($(this).prop("checked")) { - $("#fkc_status").html(PMA_messages.strForeignKeyCheckEnabled); - return; - } - $("#fkc_status").html(PMA_messages.strForeignKeyCheckDisabled); - }); // End of event handler for 'Foreign Key Check' /** * Ajax Event handler for 'Truncate Table' diff --git a/js/functions.js b/js/functions.js index 4535d06a70..b52ef3d9f2 100644 --- a/js/functions.js +++ b/js/functions.js @@ -4049,6 +4049,7 @@ AJAX.registerTeardown('functions.js', function () { $('input#print').unbind('click'); $(document).off('click', 'a.create_view.ajax'); $(document).off('keydown', '#createViewDialog input, #createViewDialog select'); + $(document).off('change', '#fkc_checkbox'); }); AJAX.registerOnload('functions.js', function () { @@ -4096,6 +4097,14 @@ AJAX.registerOnload('functions.js', function () { syntaxHighlighter.on("inputRead", codemirrorAutocompleteOnInputRead); } } + + $(document).on('change', '#fkc_checkbox', function () { + if ($(this).prop("checked")) { + $("#fkc_status").html(PMA_messages.strForeignKeyCheckEnabled); + } else { + $("#fkc_status").html(PMA_messages.strForeignKeyCheckDisabled); + } + }); // End of event handler for 'Foreign Key Check' }); function PMA_createViewDialog($this) diff --git a/libraries/mult_submits.inc.php b/libraries/mult_submits.inc.php index 6af9c9b34f..fd4273e7ff 100644 --- a/libraries/mult_submits.inc.php +++ b/libraries/mult_submits.inc.php @@ -214,6 +214,17 @@ if (!empty($submit_mult) && !empty($what)) { $GLOBALS['dbi']->freeResult($result); } + if (! isset($_REQUEST['fk_check']) + && ($query_type == 'drop_tbl' || $query_type == 'row_delete') + ) { + $default_fk_check_value = $GLOBALS['dbi']->fetchValue( + 'SHOW VARIABLES LIKE \'foreign_key_checks\';', 0, 1 + ) == 'ON'; + + // for disabling foreign key checks while dropping tables + $GLOBALS['dbi']->query('SET FOREIGN_KEY_CHECKS = 0;'); + } + list( $result, $rebuild_database_list, $reload_ret, $run_parts, $use_sql, $sql_query, $sql_query_views @@ -229,9 +240,6 @@ if (!empty($submit_mult) && !empty($what)) { } if ($query_type == 'drop_tbl') { - $default_fk_check_value = $GLOBALS['dbi']->fetchValue( - 'SHOW VARIABLES LIKE \'foreign_key_checks\';', 0, 1 - ) == 'ON'; if (!empty($sql_query)) { $sql_query .= ';'; } elseif (!empty($sql_query_views)) { @@ -253,17 +261,7 @@ if (!empty($submit_mult) && !empty($what)) { ); } elseif (!$run_parts) { $GLOBALS['dbi']->selectDb($db); - // for disabling foreign key checks while dropping tables - if (! isset($_REQUEST['fk_check']) && $query_type == 'drop_tbl') { - $GLOBALS['dbi']->query('SET FOREIGN_KEY_CHECKS = 0;'); - } $result = $GLOBALS['dbi']->tryQuery($sql_query); - if (! isset($_REQUEST['fk_check']) - && $query_type == 'drop_tbl' - && $default_fk_check_value - ) { - $GLOBALS['dbi']->query('SET FOREIGN_KEY_CHECKS = 1;'); - } if ($result && !empty($sql_query_views)) { $sql_query .= ' ' . $sql_query_views . ';'; $result = $GLOBALS['dbi']->tryQuery($sql_query_views); @@ -274,6 +272,12 @@ if (!empty($submit_mult) && !empty($what)) { $message = PMA_Message::error($GLOBALS['dbi']->getError()); } } + if (! isset($_REQUEST['fk_check']) + && ($query_type == 'drop_tbl' || $query_type == 'row_delete') + && $default_fk_check_value + ) { + $GLOBALS['dbi']->query('SET FOREIGN_KEY_CHECKS = 1;'); + } if ($rebuild_database_list) { // avoid a problem with the database list navigator // when dropping a db from server_databases diff --git a/libraries/mult_submits.lib.php b/libraries/mult_submits.lib.php index a7aeb65ede..e330153cb7 100644 --- a/libraries/mult_submits.lib.php +++ b/libraries/mult_submits.lib.php @@ -433,11 +433,11 @@ function PMA_getHtmlForOtherActions($what, $action, $_url_params, $full_query) $html .= '