0

したがって、Perl での CGI プログラミングはまったくの初心者です。質問は簡単です。CGI でテキスト フィールドの内容を削除する機会はありますか?

popup_menu、送信ボタン、テキスト フィールド (エリア) を含むコードを作成する必要があります。

送信ボタンをクリックすると、プログラムは popup_menu の 1 つから値を読み取ります。タスクは、このコンテンツをテキスト フィールドにコピーし、popup_menu から別の要素を選択して (もちろん送信ボタンをクリックすると)、新しいコンテンツをテキスト フィールドに書き込んで古いものを置き換えることです。

perldoc.perl.org は、CGI プログラミングに関する情報をほとんど提供していないと思います。テーマについてたくさんの質問があります... :(

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

4

1 に答える 1

1

おそらく、あなたが説明しているのは、送信ボタンをクリックすると、フォームに入力したパラメーターを指定して、cgiスクリプトが実行されるということです。それから私がしなければならないことは、何かを書き戻し、フォームをもう一度印刷することです-異なる値で。

したがって、これがそのような種類のことを行う完璧な方法ではない場合でも(単純なフォーム要素の置換には、クライアント側で実行し、javascriptを使用する必要があります-これにはcgiバックエンドスクリプトは必要ありません)、cgiスクリプトを見てみましょうのように見えるかもしれません。

まず、フォームの書き方を知ることが重要です。あなたがそれを印刷で「難しい方法」で書くと仮定しましょう。スクリプトが行う必要があるのは、入力を解析してから、それを値として出力に追加することです。

use CGI;
my $q = CGI->new;

# get the value from the popup / html select
my $popup_value = $q->param('popup_menu'); # name of the <select name="..."> in your html
# ...

# writing the form
print $q->header;
# some more prints with form etc.
print textarea( -name    => 'text_area',
                -default => $popup_value // '', # will use empty string on first call
              );
# Don't turn off autoescaping !

ところで、選択オプションの値は、全文ではなく、短いインジケーターであることを意味します(これでも、特定の文字数まで可能である可能性があります)。したがって、テキスト領域に出力される適切な値を使用してハッシュまたは配列を作成し、選択オプションに値0、1、2..を指定することを考えるかもしれません。

my @text_values = ('', 'First text', 'second text', 'third text');
my $popup_value = $q->param('popup_menu') || 0; # default index.
# now use 1,2,3, ... as values in your popup_menu options
# ...
print textarea( -name    => 'text_area',
                -default => $text_values[$popup_value] );
于 2012-05-13T11:11:05.350 に答える