前回と同じ質問で、不可能との解答で締め切りましたが、
可能との意見が有るみたいですので、再度上げさせてもらいます。

print "<P><INPUT TYPE=submit NAME=\"送信\" VALUE=\"送信\">
<INPUT TYPE=submit NAME=\"削除\" VALUE=\"削除\">
<INPUT TYPE=reset NAME=\"クリア\" VALUE=\"クリア\">\n";
上記のようなコーディングで、ボタンを表示させてますが、
どちらのボタンを押しても、送信しか受け取れません。

どこで、何をどのようにコーディングすれば読みとれるのでしょうか?

A 回答 (3件)

素人なので、間違っているかもしれませんが、



<html>
<head><title>kicker</title></head>
<body>
<form method="post" action="/Scripts/chk.asp">
<input type="submit" name="a" value="INSERT">
<input type="submit" name="b" value="UPDATE">
<input type="submit" name="c" value="DELETE">
</body>
</html>

でどのボタンが押されたかなのですが、

<html>
<head><title>asp test</title></head>
<body>
<%
response.write request("a") & "<br>" & vbcrlf
response.write request("b") & "<br>" & vbcrlf
response.write request("c") & "<br>" & vbcrlf
%>
</body>
</html>

とやると、押されたボタンの値だけが来てます。
たとえば、UPDATEが押されると
request("b")は"UPDATE"ですが、request("a")とrequest("c")は、""となっています。

これで判断できませんか?
    • good
    • 0

 私のところでは全く問題なく判別できるようです。


 試しに下記コードをHTMLとしてデスクトップなどに保存し、各ボタンを押してみてください。

<HTML>
<BODY>
<FORM>
 <INPUT type="submit" name="a" value="INSERT">
 <INPUT type="submit" name="a" value="UPDATE">
 <INPUT type="submit" name="b" value="DELETE">
</FORM>
</BODY>
</HTML>

 HTMLファイル名は何でも構いません。FORMにACTIONを指定していないので、自分自身に送信されます。
 GET渡しされるので、送信後のアドレスを確認してみてください。
 nameが同じだろうと違おうと、押したボタンのNAME=VALUEの組み合わせが送信されるはずです。
 手元にあるIE5.00、NN4.73ではそのようになりました。
 PerlでCGIを書いても、同様に判別することが出来ました。

 試した結果を教えて頂きたいのですが。

# IEの仕様というのは、Microsoftの公式なデータなのでしょうか?
    • good
    • 0

ラジオボタンで送信・削除を選ぶか、削除の方を違うフォームにしてデータを全てhiddenで送るかではないのでしょうか?


メソッドをGET形式にすれば「送信=送信」「削除=削除」
という風に押したボタンの情報?が送られるのですが、やっぱり情報が見えてしまうので如何なものかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q「type=submit」をボタンにしない

早速お世話になります。

標題のように、
<input type=submit value="処理">とやった場合、
「処理」と表示されたボタンになりますが、
これをボタンの形にせず、文字のママにしたいのですが。
方法はありますでしょうか。

宜しくお願いします。

Aベストアンサー

カテゴリ javascript で質問した方がよいですよ。

過去の質問だと
http://oshiete.goo.ne.jp/qa/2551334.html
が参考になると思います。

Qフォームの

Perl で書いたフォーム要素に画像ボタンを次のように、next と prev の二つ作り、押した時の送信内容を知りたいのですが、分かりません。どうすればいいのでしょうか?次のようにやっても送信内容が変数$jobに入りません。

#!/usr/local/bin/perl
require 'cgi-lib.pl';
&ReadParse(*f);

$job = $f{'job'};

print <<EOD;
Content-type: text/html; charset=sjis-jp;
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="germJ.cgi" name="kdicFORM" target="frame1">
<INPUT type="image" Src="http://localhost/dic/ArrowMacPrev.GIF" name="job" value="prev">
<INPUT type="image" Src="http://localhost/dic/ArrowMacNext.GIF" name="job" value="next">
</FORM>
</BODY>
</HTML>
EOD
__END__
すみませんが、どなたか御教示をお願いします。
Perl 固有の問題ではないかも知れませんがお許し下さい。

Perl で書いたフォーム要素に画像ボタンを次のように、next と prev の二つ作り、押した時の送信内容を知りたいのですが、分かりません。どうすればいいのでしょうか?次のようにやっても送信内容が変数$jobに入りません。

#!/usr/local/bin/perl
require 'cgi-lib.pl';
&ReadParse(*f);

$job = $f{'job'};

print <<EOD;
Content-type: text/html; charset=sjis-jp;
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM me...
続きを読む

Aベストアンサー

それは<INPUT type="image">で送信される内容でしょうか?
<INPUT type="image">で送信される内容はクリックした場所の座標が送信されます。
例えば、nameがjobの場合は$f{'job.x'}にX軸が、$f{'job.y'}にY軸が送信されます。
valueでの指定はどうだったか覚えていません。。(すみません

Qフォームに

Perl で書いたフォーム要素に画像ボタンを付けたいのですが、画像が表示されません。
次のように、next と prev のボタンに二つの方法で画像を呼び出そうとしましたが。。。
Print <<EOD;
<BODY>
<FORM method="POST" action="germJ.cgi" name="kdicFORM" target="frame1">
<INPUT type="image" SCR="http://localhost/dic/ArrowMacPrev.GIF">
<INPUT type="image" SCR="/ArrowMacNext.GIF">
----
</FORM>
EOD
URL をじかにアクセスするとIE6.0は表示します。

すみませんが、どなたか御教示をお願いします。
さらに、画像が表示された後のこと、つまり「送信」されるデータ(X=nnn, Y=nnn)をどうすればキャッチしてnext/prevの分岐を実現できるか、はつぎの問題なんですが。。
 Perl 固有の問題というよりか、javascriptの問題みたいで済みません。

Perl で書いたフォーム要素に画像ボタンを付けたいのですが、画像が表示されません。
次のように、next と prev のボタンに二つの方法で画像を呼び出そうとしましたが。。。
Print <<EOD;
<BODY>
<FORM method="POST" action="germJ.cgi" name="kdicFORM" target="frame1">
<INPUT type="image" SCR="http://localhost/dic/ArrowMacPrev.GIF">
<INPUT type="image" SCR="/ArrowMacNext.GIF">
----
</FORM>
EOD
URL をじかにアクセスするとIE6.0は表示します。

すみませんが、どなたか御...
続きを読む

Aベストアンサー

scrじゃなくてsrcだと思います。

QNAME が同じ複数の INPUT データの空判定

お世話になっております。

<FORM>
<INPUT TYPE="text" NAME="A">
<INPUT TYPE="text" NAME="A">
<INPUT TYPE="text" NAME="A">
</FORM>

という形で3つの INPUT からデータを1つの変数に受け取り、その上で3つの内のいずれか(特定はできなくても構いません)が入力されていない場合に、エラーを返したいのですが、どのようにしたら良いでしょうか。

ご教示宜しくお願い致します。

Aベストアンサー

CGIモジュールを使えば至極簡単です(何使っても簡単ですが)

use CGI qw(:cgi);
my $q = new CGI;
my @A = $q->param('A');
unless(@A){
print '@Aは空でした'
}
はいどうぞ。

Qタグの中のname, value値の取得

ある文字列中に次のほぼ同値なinputタグ、
1:<input type="text" name="A" value="B">
2:<input type='text' name='A' value='B'>
3:<input type=text name=A value=B>

がある場合、この中からtext, A, B を抽出しようと思っています.
(さらに、1,2のA, B に半角スペースが含まれる場合も考慮)

自分なりの方法の概略は、
$_ = $str;
~ /(<input[^>]*?>)/;
$tag = $1;

として、<input・・・>を得て、

$tag =~ /name=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i
$name = $1;

$tag =~ /value=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i
$value = $1;

としていたのですが、nameとvalue値が\sを含む場合や、<input>タグの中の"と"の間に > が含まれる場合に正しく動作しません。
何いい方法はないでしょうか.

ある文字列中に次のほぼ同値なinputタグ、
1:<input type="text" name="A" value="B">
2:<input type='text' name='A' value='B'>
3:<input type=text name=A value=B>

がある場合、この中からtext, A, B を抽出しようと思っています.
(さらに、1,2のA, B に半角スペースが含まれる場合も考慮)

自分なりの方法の概略は、
$_ = $str;
~ /(<input[^>]*?>)/;
$tag = $1;

として、<input・・・>を得て、

$tag =~ /name=[\"']{0,1}([^\"']*?)[\"']{0,1}[\s\t>]/i
$name = $1;

$tag =...続きを読む

Aベストアンサー

正規表現だと面倒そうだし、応用も利くのでHTMLを解析するモジュールを使ってみては?

以下、ちょっと長いけど例。

my $str = <<HTMLDATA;
<input type="text" name="A" value="B">
<input type='text' name='A' value='B'>
<input type=text name=A value=B>
HTMLDATA

use HTML::Parser();
my $parser = HTML::Parser->new(
api_version => 3,
start_h => [\&startTag, "tagname,attr"],
);
$parser->parse( $str );
$parser->eof;
exit;

sub startTag {
my($tagname,$attr) = @_;
if($tagname eq 'input') {
print 'name="',$attr->{name},'" value="',$attr->{value},"\"\n";
}
}

参考URL:http://homepage3.nifty.com/hippo2000/perltips/html/Parser.htm

正規表現だと面倒そうだし、応用も利くのでHTMLを解析するモジュールを使ってみては?

以下、ちょっと長いけど例。

my $str = <<HTMLDATA;
<input type="text" name="A" value="B">
<input type='text' name='A' value='B'>
<input type=text name=A value=B>
HTMLDATA

use HTML::Parser();
my $parser = HTML::Parser->new(
api_version => 3,
start_h => [\&startTag, "tagname,attr"],
);
$parser->parse( $str );
$parser->eof;
exit;

sub startTag {
my($tagname,$attr) = @_;
if(...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報