Perl/JavaScript/サブルーチンとは?

このQ&Aのポイント
  • Perl/JavaScript/サブルーチンとは、テキストエリアからデータベースに文章を保存し、日付順にソートして新しい情報を表示するプログラムのことです。
  • デフォルトでテキストエリアに最新の情報を表示させるためには、JavaScriptの操作方法が必要です。
  • また、my.cgiを呼び出す命令を記述したmy.jsというファイルを作成し、サブルーチンのように扱う方法もあります。
回答を見る
  • ベストアンサー

Perl/JavaScript/サブルーチン

はじめまして。 今ちょっといじってるプログラムについてお聞きしたいことがあります。 index.htmlのtextareaからmy.cgiを呼び出したい のですが。my.cgiというのは 1.textareaに入力された文章をデータベースに保存。 2.日付順にソートし新しいものを一つだけ取り出す。 3.index.htmlに表示する というものなのですが。 デフォルトでtextareaに一番新しい情報が入るようにしたいのです。valueで指示したのですがJavaScriptが邪魔してブラウザに反映されません。ソースを見るとvalue="********"とはいっています。 my.cgiを呼び出す命令を記述したmy.jsというファイルを作ってサブルーチンのように扱うという方法も考えているのですが、呼び出しやindex.htmlに表示させる記述の仕方が分かりません。 どなたか分かる方は、どうぞ宜しくお願いいたします。

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

  • ベストアンサー
回答No.1

> valueで指示したのですがJavaScriptが邪魔してブラウザに反映されません。 JavaScriptが邪魔なら、ブラウザの設定でJavaScriptを切ればいいのでは? > ソースを見るとvalue="********"とはいっています。 textareaにはvalueは使いません。 <textarea>********</textarea> HTMLの文法を見直してみてください。 > デフォルトでtextareaに一番新しい情報が入るようにしたいのです。 「SSI」で検索してみてください。 index.htmlの書き方はこんな感じです。 <textarea><!--#include virtual="my.cgi" --></textarea> > my.cgiを呼び出す命令を記述したmy.jsというファイルを作ってサブルーチンのように扱うという方法も考えているのですが、呼び出しやindex.htmlに表示させる記述の仕方が分かりません。 もしこの方法をされるのであれば、my.cgiの書き方もJavaScriptもSSIのものとは全く異なります。(SSIにJavaScriptは使いません) BBSで説明できるほど短くないので「Ajax」で検索してください。

ao-man
質問者

お礼

>textareaにはvalueは使いません。 ><textarea>********</textarea> >HTMLの文法を見直してみてください。 そうなんですか。。。しりませんでした。書き直したらちゃんとtextareaに文章が表示されていました。ありがとうございます。 SSIも調べてみました。でもページ全体が既にJavaScriptで出来上がっていますので他の手段を探して見ます。 どうもありがとうございました。

その他の回答 (1)

回答No.2

連続すみません。(なんかこういうの多いなぁ。。。) JavaScriptからtextareaの内容をさわるときは.valueですが、 通常は、ソースを見てもvalue=""というのはありません。 >> my.cgiを呼び出す命令を記述したmy.jsというファイルを作ってサブルーチンのように扱うという方法も考えているのですが、呼び出しやindex.htmlに表示させる記述の仕方が分かりません。 >もしこの方法をされるのであれば、my.cgiの書き方もJavaScriptもSSIのものとは全く異なります。 JavaScriptの書き方や表示のしかたによっては、my.cgiの内容はSSIの時と同じで出来るかもしれません。 どちらにしてもAjaxはBBSで1から説明出来る物ではないので、解説サイトを見て下さい。

関連するQ&A

  • CGIのサブルーチンの呼び出し方でお聞きしたい事がございます

    お世話になります 画像ファイルをクリックして、サブルーチンを呼び出す方法とかあるのでしょうか? あるシューアーCGIの解説をしているホームページがあり、画像をクリックしますとCGIが呼び出されます、 コードを見てみると私の知らない使い方がしてありました、そのホームページの拡張子はhtmなのですがその中に <A href="http://www.hoge.net/foo/index.cgi?mode=admin&pw=0123"><IMG height=30 alt=hoge src="hoge.gif" width=150 border=0></A> となっており、hoge.gifをクリックするとindex.cgiのadminという、サブルーチンをコールしているようにみえるのですが、このような使い方が出来るのでしょうか? 「A href属性」の使い方だと思うのですが、「a herf cgi 呼び出し」で検索してみましても、今一ピントくるものが有りません、 A hrefタグでcgiの呼び出しの仕方を教えて頂けませんでしょうか。

    • ベストアンサー
    • Perl
  • JSの値をPERLで受け取りたいんですが

    JSの値をPERLで受け取りたいんですが 例えばCGIのファイルで my $value;     print "<script type=\"text/javascript\">";     print "hoge();"; #このメソッドの値を$valueに受け取りたい print "</script>"; JS側ではまあ function hoge(){ return Value; } みたいな事って出来ないんでしょうか? メソッドのところで  print $value="hoge();"; とか   print "$value=hoge();"; とかやってもできません。

  • JavascriptのDOMについて

    JavascriptのDOMについて <textarea id="ta"></textarea> というHTMLがあり、Javascriptで、 document.getElementById("ta").value = "test"; とすれば表示されますが、この .valueプロパティを知らずに最初 .innerHTMLとしていました。 textareaのプロパティで書き込むのはvalueと知る方法が知りたいです。 知らない人は.valueすら想像できません。 皆さんは、どのようにしてプロパティを見つけているのでしょうか?

  • perlからJavascriptを起動

    perlからJavascriptを起動させたいのですが分からずに困っています。 HTMLには、以下のように記述し、 <a href="view.cgi?picture=(1)&name=(2)">画像表示</a> view.cgiからJavascriptを起動させ、画像をポップアップさせたいのですが、そもそもperlから直接Javascriptを起動させることは可能なのでしょうか? 宜しくお願いいたします。

  • JavaScriptのアクセス解析が動きません

    当方perlの知識はないので困っております。 あるオープンソースのcgiを使っているのですが cgiファイルが呼び出すhtmlファイルにJavaScriptで記述された アクセス解析の記述をしたのですが、うまくいきません。 アドレスを見ると×××.cgiのままとなっており、表示するhtmlの中に JavaScriptの記述を埋め込んでいるという形になります。 <script type="text/javascript"> document.write("<img src=http://・・・/index.cgi?page=XXXX&r=" + document.referrer + ">"); </script> 最初に表示されるときはlogへの書き込みがなされないのですが 更新ボタンを押すと書き込みがされます。 この記述をヘッダーの中に入れたり、外部で呼び出したりいろいろやりましたがすべて同じような挙動になります。 cgiファイルの中身の最後の方はこうなっております。 my $tmpl = HTML::Template->new( die_on_bad_params => 0, filename => './html/' . $page ); # HTMLテンプレートにデータベースから読み込んだ情報を設定 $tmpl->param( dlid => $dlid, sid => $sid, message => "$message" ); #HTMLの表示 print "Content-Type: text/html\n\n"; print $tmpl->output(); この部分をいじってもダメでしょうか? また、何か対策はないでしょうか。 よろしくお願いいたします。

  • 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でのデータ受け取り方法を教えていただけないでしょうか。この質問に対して有効なサイトがあれば合わせて教えていただきたくおもいます。 よろしくお願いします。

  • css,javascriptの呼び出しについて

    某サイトで、 cssの呼び出しで <link rel="stylesheet" href="xxxx.css?v=yyyyyy" > javascriptの呼び出しで <script src="xxxx.js?v=yyyyyy"> という記述がされていました。 phpスクリプトではよく見かける?v=yyyyyyという記述ですが、cssとjavascriptでは見かけた事がないので色々と調べたのですが、答えが見つかりません。 上記に示した様な記述方法は一般的なものなのでしょうか? 取り留めのない質問ですがよろしくお願い致します。

    • ベストアンサー
    • CSS
  • javascriptでtextareaに文字列を追加したい

    textareaの最後尾に文字列を追加したいです。 いろいろサイトを検索してみたのですが、解決できず困っています。  <form>中に<textarea>とボタンを設定しておきボタンを押すと  文字列を最後尾に追加する。 というのはありました。 私は、ボタンは無しで、画面を読み終わったタイミングで、textareaの最後尾に文字列を追加したいのです。 (仕様で、bodyタグにonloadを記述することは出来ません。) (またcgiでHTML記述を生成しています。) が、どこかのサイトにあった例を見ても、どのように自分のソースに 反映したらよいのか分からず・・・。 サイトにあった例を参考に、下記のように記述してみましたが駄目でした。 <textarea name="textArea_A"></textarea> <SCRIPT LANGUAGE="JavaScript"> <!-- var objTextarea = document.getElementsByName('textArea_A')[0]; objTextarea.value += "AAA"; //--> </SCRIPT> (これで、<textarea name="textArea_A">AAA</textarea> となってくれると良いのですが・・・。) トンチンカンな意味不明な点があるかも知れませんが、 どうか宜しくお願いいたします。

  • JavaScriptのエラー ( 関数の未定義)

    htmlであるボタンを押すと、そこで実行するはずの関数が未定義になる、 という不具合が出ていたのですが、 JavaScript(<script>)の記述場所を変更する事により、対処することができました。 でもまだ、理解ができずにいます。 たとえば <head> <script ・・・・外部jsファイル> </head> <body> <input type="text" name="hizuke" ・・・> <input type="button" name="newdisp" value="表示" onclick="hyouji();">  ・  ・ <input type="hidden" name="syori" value="">  ・  ・  ・ </body>  ・  ・ ※外部jsファイルでhyouji()関数記述 のようなhtmlで、今回「表示」ボタンをクリックするとエラーになり、 エラーの詳細を見ると    hyouji()が未定義です となり、 JavaScriptの関数がまだ読み込まれていないから 記述を後に移動したほうがいいというアドバイスを受け、 このhtmlを <head> </head> <body> <input type="text" name="HIZUKE" ・・・> <input type="button" name="newdisp" value="表示" onclick="hyouji();">  ・  ・  ・ <input type="hidden" name="syori" value="">  ・ <script ・・・・外部jsファイル> </body>  ・  ・ のように変更して、エラーをなくすことができました。 外部jsファイルのhyouji()関数の処理は 「syori」のhiddenに「hyouji」というような処理識別をセットし、 submitしています。 hyouji()関数の前にもたくさんの関数が定義されていて その中には    var aaa = document.form1.xxxx.value; などの記述もたくさんあります。 <script>の記述場所を移動したことで    htmlを読み込んで、    「表示」ボタンを表示し、    jsファイルを読み込む・・・ という処理順序になると思うのですが 表示ボタンをクリックしたときには、 jsファイルの読込みは終了しているのでしょうか??? ボタンをクリックした時にはjsの読込みを終了していないといけないと 思うのですが、なぜjsの記述を<inputボタン>の記述より後のほうに移動させて、 未定義関数が解決されるのかがわかりません。 エラーの内容が   オブジェクトが見つかりません などだと、hidden項目が後に記述されているからか・・・と理解できるのですが。 うまく伝わるか不安ですが、 ボタンクリックの前にはJavaScriptの関数が読込みが 終了していなければならないのはわかるのですが、 なぜ、ボタンの表示より、後に記述することで解決できるのか 解説していただけると助かります。 よろしくお願いします。

  • javascriptでボタン作成

    こんばんわ,htmlでボタンを表示してcgiを動かすコードを書いています. 現在のhtmlのコードです.my_mkdir.cgiはディレクトリを2つ作るcgiです. <form action="/cgi-bin/my_mkdir.cgi" method="get" target"_self">   <input type="hidden" name="$args[0]">   <input type="hidden" name="$args[1]">   <input type="submit" name="button" value="PowerON"> </form> ボタンを押す→cgi実行の流れまではよいのですが,cgiでhtmlのコードがないとブラウザ上でエラーがでます. 対策として,cgiコード(python)でこのようにリロードするようにして回避しています. print "Location: リロードするURL\n\n" これでは不格好なので,ボタンを押す→cgi実行を可能にするにはjavascriptだとできるかもしれないと聞きました. javascriptでこのようなことは可能でしょうか?hiddenで渡しているパラメータはどのようにすればよいのでしょうか? html・javascript共に初心者です.よろしくおねがいします.

専門家に質問してみよう