Đây không phải là một giải pháp thích hợp mà là một giải pháp thay thế:
Bạn có thể sao chép HTML bên ngoài của bất kỳ nút xuất nào từ kết quả truy vấn thông thường bằng trình kiểm tra phần tử từ trình duyệt của bạn và dán nó vào kết quả của lệnh CALL để xuất kết quả. Một số sửa đổi là cần thiết.
Bạn nên sao chép thẻ liên kết với href="tbl_export.php"
từ một nút xuất truy vấn thông thường. Lưu ý rằng <a>
thẻ có data-post
thuộc tính này, chứa dữ liệu biểu mẫu được mã hóa url. Trong số tất cả các trường của data-post
chuỗi, chúng tôi quan tâm đến sql_query
và table
lĩnh vực. Cụ thể, chúng tôi muốn thay thế sql_query
và khẳng định rằng table
trường không trống.
Khi thực hiện lệnh CALL trong PhpMyAdmin, bạn phải mở trình kiểm tra phần tử tại tập trường ở cuối trang, dán HTML bên ngoài đã sao chép làm con cuối cùng của tập trường và chỉnh sửa sql_query
giá trị khớp với giá trị của sql_query
trong Tạo Chế độ xem lân cận nút.
Tập lệnh Greasemonkey sau đây tự động thực hiện tất cả những điều trên và tạo nút "Xuất khẩu bắt buộc" khi có thể:
// ==UserScript==
// @name Force export button in phpMyAdmin
// @namespace https://<your phpmyadmin host>/*
// @include https://<your phpmyadmin host>/*
// @version 1
// @grant none
// ==/UserScript==
setInterval(function() {
// See https://stackoverflow.com/a/35385518/5254685
/**
* @param {String} HTML representing a single element
* @return {Element}
*/
function htmlToElement(html) {
var template = document.createElement('template');
html = html.trim(); // Never return a text node of whitespace as the result
template.innerHTML = html;
return template.content.firstChild;
}
let create_view_a = document.querySelector('span>a.create_view');
if (create_view_a == null) {
return;
}
if (document.querySelector('a[href="tbl_export.php"]') != null) {
return;
}
let data_post = create_view_a.getAttribute('data-post');
let fieldset = create_view_a.parentElement.parentElement;
let form_data = Object.fromEntries(
data_post.split('&').map(v => v.split('=', 2))
);
if (form_data['table']) {
let forced_export_btn = htmlToElement(`
<a href="tbl_export.php" data-post="${data_post}">
<span class="nowrap"><img src="themes/dot.gif" title="Export" alt="Export" class="icon ic_b_tblexport"> Forced Export</span>
</a>
`);
fieldset.appendChild(forced_export_btn);
}
}, 2500);