Ini bukan solusi yang tepat, melainkan solusi:
Anda dapat menyalin HTML luar tombol ekspor apa pun dari hasil kueri biasa menggunakan pemeriksa elemen dari browser Anda dan menempelkannya ke hasil perintah CALL untuk mengekspor hasilnya. Beberapa modifikasi diperlukan.
Anda harus menyalin tag jangkar dengan href="tbl_export.php"
dari tombol ekspor kueri biasa. Perhatikan bahwa <a>
tag memiliki data-post
atribut, yang berisi data formulir yang disandikan url. Di antara semua bidang data-post
string, kami tertarik dengan sql_query
dan table
bidang. Yaitu, kami ingin mengganti sql_query
dan tegaskan bahwa table
kolom ini tidak boleh kosong.
Saat menjalankan perintah CALL di PhpMyAdmin Anda harus membuka inspektur elemen di fieldset di bagian bawah halaman, tempel HTML luar yang disalin sebagai anak terakhir dari fieldset dan edit sql_query
nilai yang cocok dengan nilai sql_query
di Buat Tampilan yang berdekatan tombol.
Skrip Greasemonkey berikut melakukan semua hal di atas secara otomatis dan membuat tombol "Ekspor Paksa" jika memungkinkan:
// ==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);