下記はjavaScriptで書いたものですが、javaScriptが有効になっていないと機能しないので
perlで同じことをやりたいのですが、フォームのvalueを変更する方法とinnerHTMLの様なボタンをクリックするとテキストを変更する方法が分かりません。
ヒントでも良いので教えていただけませんか?
<HTML>
<HEAD><SCRIPT language="JavaScript">
<!--
function nextA(){
var data = document.formA.data.value;
data++;
document.formA.data.value = data;
}
//-->
function nextB(){
var data = document.formB.data.value;
data++;
document.formB.data.value = data;
document.getElementById("print").innerHTML = data;
}
//-->
</SCRIPT>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY>
<FORM name="formA">
<input name="data" value="1">
<INPUT type="button" value="足す" onclick="nextA()">
</FORM>
<FORM name="formB">
<SPAN id="print">1</SPAN>
<INPUT type="button" value="足す" onclick="nextB()">
<INPUT type="hidden" name="data" value="1" >
</FORM>
</BODY>
</HTML>
No.1ベストアンサー
- 回答日時:
こんにちは。
Perlで書いてCGIとして動かしたいという事でしょうか?
スマートじゃない気もしますが一応、こんな感じではどうですか。
■test.cgi(この下の # から HEOF までファイルに書く)
#!/usr/bin/perl
#上はPerlへのパス
#初期値
$num1 = 1;
$num2 = 1;
#リクエスト確認
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
if ($ENV{'CONTENT_LENGTH'} > 51200) {}
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} elsif ($ENV{'REQUEST_METHOD'} eq "GET") {
$buffer = $ENV{'QUERY_STRING'};
}
#デコード実行
if ($buffer ne "") {
@pairs = split(/&/,$buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
}
#インクリメント
if ($FORM{'data1'} ne "") {$num1 = $FORM{'data1'};}
if ($FORM{'data2'} ne "") {$num2 = $FORM{'data2'};}
if ($FORM{'button1'} eq "足す") {
$num1 = $FORM{'data1'} + 1;
} elsif ($FORM{'button2'} eq "足す") {
$num2 = $FORM{'data2'} + 1;
}
#HTMLを出力
print "Content-type: text/html\n\n";
print <<"HEOF";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form action="test.cgi" method="post">
<input type="text" name="data1" value="$num1"><input type="submit" name="button1" value="足す">
<br>
$num2
<input type="hidden" name="data2" value="$num2"><input type="submit" name="button2" value="足す">
</form>
</body>
</html>
HEOF
GX71さん、回答ありがとうございます。
if ($FORM{'button1'} eq "足す") で条件分岐させるところと<input type="text" name="data1" value="$num1">のnameをバッファとして使ってるところがとっても参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
cgi アクセス制限 エラー
-
フォームを再送信しますか?
-
apacheでPerl CGIが作動せず、5...
-
-T(汚染モード)でメールが送れ...
-
CUIとGUIについて
-
フォームメールを受信すると文...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
-
ホームページでCGIのフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別formのhidden項目を自form値...
-
チェックボックスの返す値
-
Error: No Recipient というエ...
-
チェックボックスでのvalue値の...
-
このメールフォームが機能しな...
-
配列の中身がイコールならばと...
-
CGIフォームから飛ばすメールが...
-
フォームメール自動返信について。
-
アンケートフォームがうまく動...
-
CGIに渡しているパラメータを表...
-
submitボタンが押せない? J-sk...
-
チェックボックスで選択した内...
-
テキストエリアのデータを隠し...
-
アンケート集計フォーム、チェ...
-
CGIでラジオボタンの選択結果を...
-
複数ボタンのvalueを送れない
-
ボタンの処理
-
hiddenで送ったデータの取り出し方
-
携帯用アンケートページを作成...
-
チェックボックスの入力チェック
おすすめ情報