使用 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 中处理它