下記は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で質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python subprocessに関する質問
-
チェックボックスでのvalue値の...
-
ラジオボタンが両方とも選択で...
-
[HTML]プルダウンメニューの横...
-
select値をhiddenのvalueに渡し...
-
ブックマークからのアクセスを...
-
iPhoneでセレクトボックスが選...
-
INPUT TYPE
-
FORMのselectの選択肢を最初か...
-
「value」に2つの値をセットす...
-
WEBページを強制的に横画面で見...
-
javascript ColorBoxの最大縦幅...
-
SUN BBSの改造方法
-
cgiからsendmailを送信で文字化け
-
postデータのあるページの再表示
-
JNAVIから提供されたメー...
-
配列をグループ化して出力したい。
-
perlで自動ログインをしたいが...
-
CGI(Perl)内での必須項目チェ...
-
CGI経由でのPDFファイルをダウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックスの返す値
-
別formのhidden項目を自form値...
-
Error: No Recipient というエ...
-
VBAでWEBもっと見るを押して...
-
チェックボックスでのvalue値の...
-
チェックボックスで選択した内...
-
CGIでチェックボックスを使...
-
CGIに渡しているパラメータを表...
-
hiddenで送ったデータの取り出し方
-
CGIフォームから飛ばすメールで...
-
CGIプログラムでのボタン表...
-
フォームの入力内容の後ろに文...
-
ボタンの処理
-
”送信ボタン” ”クリアボタン”...
-
CGIでラジオボタンの選択結果を...
-
テキストエリアのデータを隠し...
-
MTOS内のページに設置したメー...
-
YOMIサーチのソース教えてくだ...
-
このメールフォームが機能しな...
-
複数ボタンのvalueを送れない
おすすめ情報