質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

解決済

2回答

2615閲覧

テキストをテキストボックスで表示させたい

kouyan55

総合スコア14

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

0クリップ

投稿2017/03/16 14:50

カレンダーの日付をクリックすると、以下のリンクが出るようにしました。
A href="http://hoge.com/form.cgi?year=2017&mon=3&day=15"

リンク先のform.cgiを、

#!/usr/bin/perl
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'});
} else {
$alldata = $ENV{'QUERY_STRING'};
}
foreach $data (split(/&/, $alldata)) {
($key, $value) = split(/=/, $data);

$value =~ s/+/ /g;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1))/eg;
$value =~ s/\t//g;

$in{"$key"} = $value;
}

print "Content-Type: text/html; charset=Shift_JIS\n\n";
print "<html>\n";
print "<head><title>サンプル</title></head>\n";
print "<body>\n";
print "<p>日付は$in{'year'}年$in{'mon'}月$in{'day'}日です。</p>\n";
print "</body>\n";
print "</html>\n";

exit;

として、テキストとしての表示はできるのですが、これをそれぞれ

<input type="text" name="year" value=""> <input type="text" name="mon" value=""> <input type="text" name="day" value="">

と言ったテキストボックスに独立して表示させたいのですが、どのような書式で記述したら良いのかがわかりません。
ご教示のほど、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こんな感じでだぶるこーとのエスケープはいりません。

Perl

1%in = (year => 2017, mon => 3, day => 17); 2print "<p>日付は$in{'year'}年$in{'mon'}月$in{'day'}日です。</p>\n"; 3print qq(<input type="text" name="year" value="$in{'year'}">\n); 4print qq(<input type="text" name="mon" value="$in{'mon'}">\n); 5print qq(<input type="text" name="day" value="$in{'day'}">\n);

実行結果

Perl

1<p>日付は2017年3月17日です。</p> 2<input type="text" name="year" value="2017"> 3<input type="text" name="mon" value="3"> 4<input type="text" name="day" value="17">

追記

たぶん書くところを間違っていたので修正しました。

投稿2017/03/16 16:18

編集2017/03/16 16:20
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

print "<p>日付は$in{'year'}年$in{'mon'}月$in{'day'}日です。</p>\n";
ここを

print "<input type="text" name="year" value="$in{'year'}"> \n"; print "<input type="text" name="mon" value="$in{'mon'}"> \n"; print "<input type="text" name="day" value="$in{'day'}"> \n";

こんな感じでいけませんかね?
言語わからないんで、なんとなく$in{'year'}で年が入るのかなと思いまして。
ダブルコートのエスケープはお願いします。

投稿2017/03/16 15:14

Iya712

総合スコア158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kouyan55

2017/03/17 03:01

ありがとうございます。value にそのまま入れるだけなのですね。 煮詰まってくると、そんなに難しくないことでも頭に浮かびませんでした。 この程度のことは、どちらかと言うと「勉強不足」と言うより「頭の固さ」の問題でした。 感謝します。
Iya712

2017/03/18 08:31

いえいえ、私もこの手のことはよく分からなくなります。 チェックボックスのテキストはタグの外に書くとか、複数のパターンがありますからね^^; お役に立ててよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問