javascript - 带有 SQL 问题的 HTML Perl 更新按钮

标签 javascript mysql html perl button

我正在尝试创建一种更新按钮,当用户单击 HTML Perl 按钮时,它会要求确认(是/否)。

如果用户单击"is",它会运行一个 SQL 脚本,然后返回一个弹出窗口 (JavaScript),说明操作成功(或不成功)。

SQL 代码正在创建一个备份表,然后将存储在数据库中的当前值复制到这个备份表中,因此不需要刷新屏幕。下面提供了完整且有效的代码:

CREATE TABLE IF NOT EXISTS backup_tab_right_mapping
    LIKE tab_right_mapping;
DELETE FROM backup_tab_right_mapping
    WHERE group_id = "1"
    AND role_id = "1";
INSERT INTO backup_tab_right_mapping
SELECT * FROM tab_right_mapping
    WHERE group_id = "1"
    AND role_id = "1";

但是我不想使用 PHP,我正在寻找一个 Sub 解决方案。

感谢您的宝贵时间以及您可以提供的任何帮助 XD

编辑:项目要求只允许我使用 perl、HTML 和 JavaScript。

最佳答案

在没有 JavaScript 的情况下也能工作。您需要添加更多的客户端错误检查,以防程序异常中止。

为遵循最佳实践,将数据库凭据存储在程序之外。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><title />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" />
</head><body><form action="backup-table" method="POST"><input type="submit" /></form>
<script>
$('form').submit(function() {
    if (confirm('Backup table?')) {
        $.post("backup-table", function(data) {
            alert($(data).text());
        });
        return false;
    };
});
</script>
</body></html>

#!/usr/bin/perl -T
use strict;
use warnings FATAL => 'all';
use CGI qw();
use DBI qw();

my $dbh = DBI->connect('dbi:…', '…username…', '…password…', {RaiseError => 1, AutoCommit => 1,});

for my $sql (
    'CREATE TABLE IF NOT EXISTS backup_tab_right_mapping
        LIKE tab_right_mapping;',
    'DELETE FROM backup_tab_right_mapping
        WHERE group_id = "1"
        AND role_id = "1";',
    'INSERT INTO backup_tab_right_mapping
    SELECT * FROM tab_right_mapping
        WHERE group_id = "1"
        AND role_id = "1";',
) {
    $dbh->do($sql);
}

my $cgi = CGI->new;
print $cgi->header('application/xhtml+xml');
print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><title /></head>
<body><p>Backup complete</p></body></html>';

关于javascript - 带有 SQL 问题的 HTML Perl 更新按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220075/

相关文章:

javascript - 是什么导致 SyntaxError : Unexpected EOF error in underscore template?

javascript - AOS 在视口(viewport)中显示之前加载滚动动画

javascript - JSLint 测试版错误

c# - EF Core 左连接计数

html - CSS垂直菜单栏,防止子菜单超过一定高度

javascript - 在 AngularJS 中的 ng-model 上定义一个空值

MySQL:查找所有多个二级域

mysql - SQL查询以选择具有最大列值的所有行

html - 为表格中的整行着色,没有边框

css - 在父 div 中 float 2 个 div,并将这些 div 一个放在另一个下面