2011-09-12 16 views
1

私の入力フィールドのぼかし機能でPerlスクリプトを呼びたい。しかし、私は本当にこれを行う方法を知っていない、と私はグーグルとの作業のものを見つけることができません。 /:htmlページの私のコードはjQueryブラーイベントを使用してPerlスクリプトにAJAX要求を行うにはどうすればよいですか?

<!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); 
} 
+2

あなたがあなた自身の質問に答えることをしたい場合は、答えを質問を置き換えるものではありません、それに答えます。 – Quentin

答えて

3

シェルで実行しているユーザーが操作できるように設計されたコマンドラインスクリプトを作成したようです。 (Getoptの使用は大きなヒントです)。

HTTPリクエストに応答させるには、(シェルではなく)Webサーバーで動作するように書き換える必要があります。

これを行うにはいくつかの方法があります。簡単なアプローチは、CGIを使用することです。現代的なアプローチは、おそらくフレームワークと組み合わせてPlackを使うことでしょう。

ApacheでPerl/CGIを使用するための基本的な紹介はApache documentationで利用できます。受信データを処理してHTTPヘッダーを正しく出力するには、CGIなどのモジュールを参照する必要があります。

Plack from the project's homepageについては、それを使用する多くのフレームワークへのリンクが含まれています。私のために働いた

1

は、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); 
}; 
関連する問題