我想在输入字段的模糊函数中调用 Perl 脚本。但我真的不知道如何做到这一点,而且我无法通过谷歌找到任何可用的东西。我的html页面代码是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Guthaben anzeigen</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script src="jquery-1.6.3.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#pin").blur(function(){
alert($.ajax({
type: "POST",
url: "/cgi-bin/guthabentransfer.pl",
data: "cardnumber=1234567890",
success: function(msg){
alert(msg);
}
});
);
});
});
</script>
</head>
<body>
<!-- <div class="haupt"> -->
<form action="/aktivieren.pl" method="post">
<table border="0">
<tr>
<td align="left">Kaartnummer:</td>
<td align="left"> <input class="textfeld" name="kartennummer" type="text" maxlength="19"></td>
<td align="left"><input id="pin" class="pin" name="pinnr" type="text" maxlength="4" value="PIN"></td>
</tr>
<tr>
<td align="left">Balance:</td>
<td align="left"> <input id="balance" class="textfeld" name="kartennummer" type="text" maxlength="19"></td>
</tr>
</table>
</div>
</form>
</div>
</body>
</html>
这是我的 Perl 脚本,我认为它是最容易打印结果的:/。
#!/usr/bin/perl
require "cgi-lib.pl";
use funktionen;
use Getopt::Long;
&GetOptions("cardnumber:s" =>\$cardnumber);
$cardnumber=$query->param('cardnumber');
if ($cardnumber != "") {
print &funktionen::checkbalance($cardnumber);
}
最佳答案
您似乎编写了一个命令行脚本,旨在与在 shell 中运行该脚本的用户进行交互。 (这里 Getopt 的使用是一个很大的线索)。
为了让它响应 HTTP 请求,您需要重写它,以便它可以与 Web 服务器(而不是 shell)一起工作。
有多种方法可以做到这一点。一个简单的方法是使用 CGI。现代方法是使用 Plack,可能与框架结合使用。
有关在 Apache 中使用 Perl/CGI 的基本介绍可在 Apache documentation 中找到。 。您应该查看诸如 CGI 之类的模块为了正确处理传入数据并发出 HTTP header 。
您可以了解更多有关Plack from the project's homepage的信息,其中包括指向许多使用它的框架的链接。
关于jquery - 如何使用 jQuery 模糊事件向 Perl 脚本发出 AJAX 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384744/