【问题标题】:How do I make an AJAX request to Perl script using jQuery blur event?如何使用 jQuery blur 事件向 Perl 脚本发出 AJAX 请求?
【发布时间】:2011-11-15 03:10:02
【问题描述】:

我想在我的输入字段的模糊函数中调用一个 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);
}

【问题讨论】:

  • 如果你想回答自己的问题,那就回答吧,不要用答案代替问题。

标签: jquery html ajax perl


【解决方案1】:

您似乎编写了一个命令行脚本,旨在与在 shell 中运行它的用户进行交互。 (这里使用 Getopt 是一个很大的线索)。

为了让它响应 HTTP 请求,您需要重写它,以便它可以与网络服务器(而不是 shell)一起工作。

有几种方法可以做到这一点。一个简单的方法是使用 CGI。一种现代方法是使用 Plack,可能与框架结合使用。

Apache documentation 中提供了将 Perl/CGI 与 Apache 结合使用的基本介绍。您应该查看诸如 CGI 之类的模块,以便处理传入数据并正确发出 HTTP 标头。

您可以找到有关Plack from the project's homepage 的更多信息,其中包括指向许多使用它的框架的链接。

【讨论】:

    【解决方案2】:

    这对我有用,在 blur 事件中调用它:

    function perlExecute(name){
        XMLHttp.open("GET", "/cgi-bin/balance.pl?cardnumber="+name, true);
        XMLHttp.onreadystatechange = function() {
            if (XMLHttp.readyState == 4) {
                $("#balance").val(XMLHttp.responseText);
            }
        }
        XMLHttp.send(null);
    };
    

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 2014-08-15
      • 2013-10-22
      • 2016-09-29
      • 1970-01-01
      相关资源
      最近更新 更多