• ベストアンサー

JavaScriptからPerlへデータを送る方法について

プログラミング初心者です。 HTMLで書いたフォームの中にあるテキストエリアのデータを、JavaScriptでデータを取り出して、それをPerlで受け取りたいのですが、方法に見当がつきません。 以下は書いてみたソースコードです。 HTMLファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Form Test</title> <script type="text/javascript" src="JS/sample.js"></script> </head> <body> <form name=form1> <textarea name="comment" rows="3" cols="30">文字の入力</textarea> <input type="button" value="ボタン" onClick="Button()"> </form> </body> </html> JavaScriptファイル function Button(){ var comment = document.form1.comment.value; alert(comment); //値がとれてるか確認したかっただけです } Perlに関しては、#!/usr/bin/perl ぐらいしか、まだ分かりません。 よろしければ、JavaScriptからのデータ送信、Perlでのデータ受け取り方法を教えていただけないでしょうか。この質問に対して有効なサイトがあれば合わせて教えていただきたくおもいます。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Form Test</title> <script type="text/javascript" src="JS/sample.js"></script> </head> <body> <form action="receiver.pl" method="post" onsubmit="return check(this);"> <p> <textarea name="comment" rows="3" cols="30">文字の入力</textarea> <input type="submit" value="送信"> </p> </form> </body> </html> /* sample.js */ function check( form ) { form.elements[ 'comment' ] ... return /*true or false*/; } /* receiver.pl */ if( $ENV{'REQUEST_METHOD'} eq 'POST' ) { read( STDIN, $alldata, $ENV{ 'CONTENT_LENGTH' } ); ... } Perl はあまり使ったことがないので、後はご自分で。

参考URL:
http://perldoc.perl.org/perl.html
zrx1100blu
質問者

お礼

回答ありがとうございます。 書き方も大変参考になります。 英語も勉強したほうが良さそうですね・・・ がんばります!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

> プログラミング初心者です。 では、本屋さんに行ってJavaScriptやCGI-Perlの本を何冊か購入し、読んで下さい。 そうすれば初心者を脱出できるかもしれません。 > JavaScriptからのデータ送信 form.submit()、location.href、open、Ajax、JSONP等があります。 > Perlでのデータ受け取り方法 環境変数QUERY_STRINGかSTDINから取得して下さい。 CGI.pmを使うのが簡単です。

参考URL:
http://www.tohoho-web.com/www.htm
zrx1100blu
質問者

お礼

回答ありがとうございます。 やはり参考書読むべきなんですね。 正直ネットで”~~ 入門”とかで調べたぐらいでした。 早速、本調達してきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • $.postとPerlのデータ受け渡しについて

    現在、 $.postを使ってPerlにリクエストを送り、帰ってきた値を表示するという事をしたいのですが、Internal Serverエラーとなりますが、どこにエラーがあるのかがわからない状態です。 実行権限などは与えています。 以下に書いたプログラムを貼りますので、間違いがありましたら是非教えていただきたいです。 HTML index.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Test Page</title> <script type="text/javascript" src="../lib/jquery/jquery-1.3.2.js"></script> <script type="text/javascript" src="./JS/test.js"></script> </head> <body> <form id="form01"> <input type="text" name="title" id="title01" value="post"><br> <input type="button" value="post" onClick="getValue()"> </form> <div id="res_title"></div> </body> </html> JavaScript test.js function getValue(){ //フォームのデータ取得 var pos_title = $('#title01').attr('value'); //var comment = $('#comment').attr('value'); //フォームデータのPOST送信+コールバック $.post("./cgi-bin/post.pl", {"title" : pos_title}, disp); } function disp(data){ $('div#res_title').html(data); } Perl post.pl #!/usr/bin/perl -w use strict; use warnings; my $formdata; if ($ENV{'REQUEST_METHOD'} eq "GET") { $formdata = $ENV{'QUERY_STRING'}; } else { read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'}); } return $formdata;

  • spinelzのjavascript使用方法

    javascript初心者です。 spinelzのjavascript(外部ファイル)使用方法について質問があります。 今、”Grid”のデモ(http://script.spinelz.org/index.html)をコピーして、(データの変更が可能な)テーブルを作成しようと思っています。 以下のように作成すると、テーブルのデータは表示されるのですが、デモのようには動きません。 (外部ファイルのjavascriptが呼び出されていないようです。) どなたかご教授いただけませんでしょうか。 ↓HTML↓ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <!-- #BeginTemplate "../Templates/01.dwt" --> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-style-type" content="text/css"> <meta http-equiv="content-script-type" content="text/javascript"> <title>TEST</title> <link href="../css/01.css" rel="stylesheet" type="text/css"> </head> <body> <!-- - ここから JavaScript 記述です。 - --> <script src="../Public\javascripts/spinelz/grid.js" type="text/javascript"></script> <script src="../Public\javascripts/spinelz/grid_resizeEx.js" type="text/javascript"></script> <script src="../Public\javascripts/spinelz/grid_sortabletableEx.js" type="text/javascript"></script> <!-- - ここまで JavaScript 記述です。 - --> <table> <tr> <td>Column</td> <td> <input type="button" class="button" value="add" onclick="grid.addColumn(grid.targetColIndex,'new Column');" /> <input type="button" class="button" value="remove" onclick="grid.deleteColumn(grid.targetColIndex);" /> </td> </tr>  ・  ・  (ボタンの記述)  ・  ・ </table> <div id="grid_container" > <table width="100%" border="0"> <thead> <tr> <td class="top" style="height: 22px">日付</td> </tr> </thead>  ・  ・  (テーブルのデータを記述)  ・  ・ </table> </div> ↓javascriptは下記パスに保管↓ ・「Public\javascripts/spinelz/grid.js」 ・「Public\javascripts/spinelz/grid_resizeEx.js」 ・「Public\javascripts/spinelz/grid_sortabletableEx.js」 以上です。よろしくお願い致します。

  • javascriptからframeへの出力方法

    <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'> <html> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> function init(){ $("f1").innerHTML = "hoge"; $("f2").innerHTML = "piyo"; } </script> </head> <frameset cols="50%,*" onload="init()" > <frame id="f1"> <frame id="f2"> </frameset> </body> </html> 上記、二つに分けたフレームにそれぞれ"hoge"と"piyo"と表示したいのですが出来ません。フレームにjavascriptからアクセスするにはどうしたらよいですか?

  • 外部ファイルJS参照を全て消さないと「文字が正しくありません」エラー

    実に不思議なのですが、 以下のように4つのJSファイルをインクルードしているHTMLファイルを ローカルで開くと「文字が正しくありません」とスクリプトエラーが何回かでます。 ですが、script1~4.js の行を全てコメントアウトすると、エラーはでません。 1~4のどれかにエラーが含まれているのかと、一つ一つを外してみましたが、 どの行を外しても、やはり「文字が正しくありません」と出てしまいます。 ローカルの然るべきパスに1~4はあります。また、HTML同様、JSもEUCになってます。 何が原因なのでしょうか? <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title>タイトル</title> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <meta http-equiv="content-script-type" content="text/javascript"> <meta http-equiv="content-style-type" content="text/css"> <link href="../css/style.css" rel="stylesheet"> <script src="../js/script1.js" type="text/javascript"></script> <script src="../js/script2.js" type="text/javascript"></script> <script src="../js/script3.js" type="text/javascript"></script> <script src="../js/script4.js" type="text/javascript"></script> </head>

  • Perlからjavascript構文の出力について

    はじめまして。 現在javascriptを勉強中の者です。 PerlからHTML構文内にjavascript構文を追記し出力しようとしていますが、追記してPerlを実行させただけでInternal Server Errorとなってしまいます。 過去ログをいくつか見させて頂きましたが、自分のソースのどこが悪いのかさっぱりです;; やりたいことは、登録完了ポップアップを表示させるだけです。 表示条件等は別として、まずjavascript構文をソースに追記してポップアップを表示させたいです。 どうか良きアドバイスをお願い致します。 #!/usr/bin/perl require "cgi-lib.pl"; print "Content-type: text/html\n\n"; print qq! <HTML> <HEAD> <META Http-Equiv="Content-Type" Content="text/html;charset=EUC-JP"> <META name="robots" content="noindex,nofollow"> <TITLE>登録画面</TITLE> </HEAD> <BODY> <script type="text/javascript"> <!-- alert("登録完了"); // --> </script> <FORM ACTION="test.cgi" METHOD="post"> <FONT SIZE="4"><B>登録画面</B></FONT>  </BODY> </HTML> !;

    • ベストアンサー
    • Perl
  • javascriptで処理している間画像を表示したい。

    JavaScriptで処理をしている間、画像を表示したいのですが、 上手く表示されません。 以下、HTMLファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" src="sample_csv.js"></script> </head> <body> <form name="form1"> <input type="button" value="取込" onclick="testWait()"/> </form> <p id="test"></p> </body> </html> 以下JSファイル function testWait() { var imgWait = document.createElement('img'); imgWait.setAttribute("src","data/waiting.gif"); document.getElementById("test").appendChild(imgWait); //alert("test"); sleep_busy(5000); document.getElementById("test").innerHTML = ""; } function sleep_busy(wait) { var start = (new Date()).getTime(); while (true) { if ((new Date()).getTime() >= start + wait * 1) break; } } jsファイルのコメントしてあるアラート文を有効にすると きちんと表示されます。 どうしてalert文を有効にした場合と、コメントにした場合で 結果が違ってきてしまうのでしょうか。 上手く表示する、良い方法ありますでしょうか。 宜しくお願いします。

  • このソースどういう意味ですか【JavaScript】

    <HTML> <HEAD> <TITLE>JavaScript Sample</TITLE> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> </HEAD> <BODY> : <INPUT TYPE="button" VALUE="OK" onClick="~"> : </BODY> </HTML> このソースの中の <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> の部分ってどういう意味ですか? 特にTypeとHTTP-EQUIVの部分については個別で詳しく知りたいです。 回答よろしくお願いします。

  • firefox+xhtml+javascript

    お世話になっております。 divをweb上でドラッグできるスクリプトを組みました。 Opera9.6,IE6では動いているのですが、Firefoxでは、ある条件下でしか動きません。 ある条件とは、DOCTYPEの宣言がされていないことで、XHTMLにしようとDOCTYPEを宣言すると、動作しなくなってしまいます。 <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'> <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ja'> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> <meta http-equiv='Content-Script-Type' content='text/javascript' /> <title>test</title> <script type='text/javascript' src='FILENAME.js'></script> -------- <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'> を消せば動きます。 仮に、DOCTYPEをHTML4.1などにしても動きません。 クオートをシングルからダブルにしても同じです。 動かない状態でも、JS自体は読んで、onload関数の中は見に行っているようです(alertを埋め込んだらでたので) 可能性として、 外部ファイルのJSの書き方に問題があるのでしょうか? それとも、HTML側に問題があるのでしょうか? ソースを見なくても何か考えられることがあれば、教えてください。 よろしくお願いします。

  • formとalert

    javascript初心者です。 formを使ってテキストボックスに入力された文字をalertを使って表示させたいのですが、functionの中の記述がよくわかりません。 formを使った参考資料も見つからず質問するに至りました。 教えていただければと思います。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>練習</title> <script type="text/javascript"> </script> </head> <body> <form name="a">文字を入力: <input type="text"size="20" name="name1" ><br> <input type="button" name="name2" value="確認" onclick="alert(chk)"> </form> <script type="text/javascript"> function chk(){ var n=document.a.name1.value; alert(n); } </script> </body> </html>

  • inputの中身を書き換える方法について

    下記で書き換え実行ボタンを押下すると、初期値1は変更後1に変わるのですが、初期値2と初期値3が変わりませんでした。 そのため、inputの中を書き換えるには、divの場合とは違う書き方をしないといけないのかと思ったのですが、どのように記述すればよいかわからなかったのでアドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 <!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" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="JavaScript" type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> <!-- $(function(){ $("#change").click(function(){ $("#text1").html("変更後1"); $("#text2").html("変更後2"); $("#text3").html("変更後3"); }); }); // --> </script> <title>title</title> </head> <body> <form> <input id="change" type="button" value="書き換え実行" /> </form> <br /> <div id="text1">初期値1</div> <input type="text" name="text2" id="text2" value="初期値2" /> <input type="hidden" name="text3" id="text3" value="初期値3" /> </body> </html>

    • ベストアンサー
    • AJAX
FAXチャクシン アリの印刷方法
このQ&Aのポイント
  • 留守中にFAXが送信されていました。リボンカートリッジが切れていたため、31枚中1枚目の半分しか印刷されていませんでした。
  • リボンカートリッジを新しいものに交換し印刷をしたとこと、31枚中10枚しか印刷されませんでした。ディスプレイには「チャクシン アリ:03ケン」と表示されています。
  • この「3件」を印刷する方法はあるのでしょうか。それとも、この「3件」とは3件の着信あったことを通知するだけなのでしょうか。また、この表示を消す方法はあるでしょうか。
回答を見る

専門家に質問してみよう