使用 JavaScript 和 Perl 处理表单内容

Posted

技术标签:

【中文标题】使用 JavaScript 和 Perl 处理表单内容【英文标题】:Handling form content with JavaScript and Perl 【发布时间】:2022-01-13 02:49:23 【问题描述】:

我在 Perl 中有一个音乐项目,它也需要一些 javascript,但我似乎被卡住了。 我需要将程序(ffplay)作为命令行应用程序执行,以便它在不显示 GUI 窗口的情况下运行。 Perl 处理服务器端的事情(sqlite 数据库访问)。我需要 JavaScript,因为我将曲目名称显示为一个按钮,单击该按钮时应该运行“ffplay”来播放按钮代码中命名的曲目。但是按钮点击需要JavaScript。

当我点击一个曲目名称按钮时,它只显示第一首曲目,无论我是哪一个 点击。

以下代码从数据库中提取曲目名称。

    $sth=$dbh->prepare (qqselect track from tracks where 
artistid=$ArtistID and cdid=$cdID order by track);
    $sth->execute();
    while(@records=$sth->fetchrow_array()) 
         $Track=$records[0];
print<<Endhtml;
<script>
var form=window.document.forms[0]
function process(form) 
        alert ("Track: " + form.elements.Track.value)
    
</script>
EndHTML
        print qq<form name="Player">;
        print qq<input type="button" onClick="process(this.form)" name="Track" value="$Track"><br/>;
        print qq</form>;
    
    $sth->finish();

【问题讨论】:

如何调用 CGI 脚本?请显示更多上下文以澄清您的问题。请参阅minimal reproducible example 了解更多信息 所有代码都在 1 个 Perl 脚本中。它访问数据库以将曲目的 HTML 页面创建为可点击按钮。 您尚未发布整个脚本,但您似乎可能会为数据库中的每一行一次又一次地重新定义process。将几十个函数命名为同一件事可能不会达到你想要的效果。 【参考方案1】:

已解决。

更改了 JavaScript 函数:

    <html lang="en">
<head>
<script>
function process(value) 
    var form =document.Player
        alert ("Track: " + value)
    
</script>
</head>
<body>

<form name="Player">
<button onClick="process(this.value)" name="Track1" value="[01] Evenfall.flac">[01] Evenfall.flac</button><br/>
<button onClick="process(this.value)" name="Track2" value="[02] 6am.flac">[02] 6am.flac</button><br/>
<button onClick="process(this.value)" name="Track3" value="[03] Cut.flac">[03] Cut.flac</button><br/>
</form>
</body>

现在警报正确地告诉我点击了哪个按钮。

【讨论】:

以上是关于使用 JavaScript 和 Perl 处理表单内容的主要内容,如果未能解决你的问题,请参考以下文章

在Perl CGI中处理HTML表单中的PHP样式数组(方括号)

使用Javascript提交表单并使用ajaxForm处理它

使用 JavaScript Fetch 和 POST 发送表单数据,然后在 PHP 中处理它

在 ASP.NET 中,如何通过一个表单提交在客户端(javascript)和服务器端处理数据?

Javascript 事件处理程序未拦截表单提交

JavaScript简单了解