1

私は Perl と Javascript/Jquery/Ajax の完全な初心者です。例として、文字列 varexampleStringを test.pl に送信すると、スクリプトは文字列をファイルに書き込みます。

function sendToScript{
    var exampleString = 'this is a string';
    $.ajax({
            url: './test.pl',
            data: exampleString,
            success: function(data, textStatus, jqXHR) {
                alert('string saved to file');
            }
}

test.pl

#!/usr/bin/perl -w
use strict;

#How do I grab exampleString and set it to $string?

open (FILE, ">", "./text.txt") || die "Could not open: $!";
print FILE $string;
close FILE;

どんな助けでも大歓迎です。

4

2 に答える 2

0

Mojoliciousフレームワークを使用した例を次に示します。CGI、mod_perl、PSGI、または独自の組み込みサーバーで実行できます。

#!/usr/bin/env perl

use Mojolicious::Lite;

any '/' => 'index';

any '/save' => sub {
  my $self = shift;
  my $output = 'text.txt';
  open my $fh, '>>', $output or die "Cannot open $output";
  print $fh $self->req->body . "\n";
  $self->render( text => 'Stored by Perl' );
};

app->start;

__DATA__

@@ index.html.ep

<!DOCTYPE html>
<html>
  <head>
    %= t title => 'Sending to Perl'
  </head>
  <body>
    <p>Sending</p>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    %= javascript begin
      function sendToScript (string) {
        $.post('/save', string, function (data) { alert(data) });
      }
      $(function(){sendToScript('this is a string')});
    % end
  </body>
</html>

それをファイルに保存し(たとえばtest.pl./test.pl daemon、内部サーバーを起動する実行します。

基本的に 2 つのルートを設定します。/ルートは、JavaScript リクエストを実行するユーザー向けページです。/saveルートは、javascript がデータを送信するルートです。コントローラーのコールバックは、投稿の本文全体をファイルに追加し、確認メッセージを送り返します。このメッセージは、成功の JavaScript ハンドラーによって表示されます。

于 2013-05-03T19:26:54.870 に答える