• ベストアンサー

perl/cgiでjpeg画像のクリック座標をcgiパラメータに渡すには

perl/cgiで表示したjpegの画像のクリックした点の座標位置を次にジャンプするページにcgiパラメータとして渡したいのですがどのようにすれば良いでしょうか?画像全体を<input type="button" src="画像ファイル" name="$test" value="返答">のようにすればよいのかもしれませんが、座標をパラメータ渡しする方法がわかりません。perl/cgiだけでは無理であれば、javascriptでcgiに渡すためのヒントでも構わないのですが。。。 ご存知の方がいたらご教示ください。

  • CGI
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • feininger
  • ベストアンサー率41% (74/180)
回答No.2

「画像ボタン」という手も。 <form ~> <input type=image name="AAA" height=100 width=100 src="xxx.gif"> </form>

参考URL:
http://tohoho.wakusei.ne.jp/html/input.htm
zukazuka
質問者

お礼

遅れてすみません。画像ボタンにして、受け皿となるページの方で、 my $X = $cgi->param("AAA.x"); print "X is $X<BR>"; my $Y = $cgi->param("AAA.y"); print "Y is $Y<BR>"; などとやったらパラメータ渡しができたことが確認できました。参考になりました。ありがとうございます。 また機会があれば何卒教えてください。

その他の回答 (1)

  • estea
  • ベストアンサー率44% (39/87)
回答No.1

<A HREF="xx.cgi"><IMG SRC="xx.gif" ISMAP ></A> な感じで,画像をクリックした時に xxx.cgi?123,456 などのように画像上の座標情報がサーバーに送られた気がする。

zukazuka
質問者

お礼

反応が遅れてすみません。 どうも回答をありがとうございました。今回の件で直接は使いませんでしたが、知識として覚えておきます。 またよろしくお願いします。

関連するQ&A

  • cgiへのパラメータについて

    htmlのformで入力した名前をcgiで受け取ると"encstr"となります。 エンコードした文字列を受け取るにはどのようにすれば良いか教えてください。 <form name="js"> お名前:<input type="text" name="txtb" value=""><br> <input type="button" value="送信" onclick="gogo()"><br> </form> <script type="text/javascript" language="javascript"> <!-- function gogo() { var str1=document.js.txtb.value; var encstr = encodeURI(str1); document.write('<img src="/cgi-bin/gogo.cgi?namae=encstr">'); } // --> </script>

  • CGI/perlのエラー

    CGIのテストをしています。 サーバーはUbuntu14.04 htmlで <html> <head><title>HTMLサンプル</title></head> <body> ボタンサンプル<br> <form action="cgi-bin/test.cgi" method="post"> <button type="button">ボタン</button><br> <input type="submit" value="送信"> </form> </body> </html> test.cgi #!/usr/bin/perl system = ("date >> webwrite""); 実行すると End of script output befor heads: test.cgi のエラーで止まってしまいます。 ファイル webwriteは作成されています。 何か、終了処理が必要なもでしょうか?

  • クリックでボタンの画像を変更するjavascriptsで

    通常A画像のボタンが押された場合、B画像に変更すると言う動作を行いたいのですが、 document.f1.elements['b1'].src = "A.jpg"; この部分でエラーがでます。 input type="image"のsrcを指定するにはどうしたら良いでしょうか。 --------------------- <html> <script language="javascript"> <!-- function ImageChange(){ if(document.f1.elements['b1value'].value == 0){ document.f1.elements['b1'].src = "A.jpg"; document.f1.elements['b1value'].value = 1; }else{ document.f1.elements['b1'].src = "B.gif"; document.f1.elements['b1value'].value = 0; } } //--> </script> <body> <form name="f1"> <input type="image" name="b1" src="A.gif" onclick="ImageChange()" > <input type="hidden" name="b1value" value="0"> </form> </body> </html>

  • PerlでCGIを制作している初学者です。

    PerlでCGIを制作している初学者です。 画像付きのアンケートを作ろうとしているのですが、 その際のページの切り替えがうまくいきません。 普通に1ページに、ボタンやフォームを配置したアンケートは作れるのですが、 自身が作りたいのは、紙芝居のごとく、 1ページ目に画像とアンケートの選択肢であるチェックボックスがあり、 チェックボックス入力後に回答を押すと同時に、配列へチェックボックスの答えを格納し、 2ページ目のアンケートへ移るというものです。 1ページ目や2ページ目のhtmlファイルならびにcgiファイルは用意できているのですが、 1ページ目の返答ボタンをおした際の処理の記述がわかりません。 例えば、 1ページ目 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <CENTER> <img src="sample.jpg" alt="01" width=800px height=600px> <FORM method="POST" action="post.cgi"><BR> <INPUT type="radio" name="answer" value="010" checked>complete mismatch  <INPUT type="radio" name="answer" value="011">mismatch  <INPUT type="radio" name="answer" value="012">neutral  <INPUT type="radio" name="answer" value="013">match  <INPUT type="radio" name="answer" value="014">complete match  <BR> <BR> <INPUT type="submit" name="submit" value=" SEND "> <BR> </FORM> </CENTER> </BODY> </HTML> と記述し、 post.cgi #!/perl/bin/perl print "Content-type: text/html\n"; print "\n"; read(STDIN, $data, $ENV{'CONTENT_LENGTH'}); print "REQUEST_METHOD : $ENV{'REQUEST_METHOD'}<br>\n"; print "CONTENT_LENGTH : $ENV{'CONTENT_LENGTH'}<br>\n"; print "DATA : $data<br>\n"; としたとき、 1ページ目でsample.jpgについての意見をラジオボタンで選択し、それをpost.cgiにて表示させるというサンプル(ここを後で変数の格納に変えます)ですが、この時、1ページに似た構成の2ページ目のアンケートへのリンクの仕方がわかりません。 イメージ的には、 1ページ目表示→回答を配列[0]に格納→2ページ目表示→回答を配列[1]に格納→・・・ 最終的には、各ページの回答を記録した配列を出力します。 以上のようなことを実現したいのです。 WEBなどを探してみたのですが、1ページにボタンやフォームがたくさん埋め込まれたものは発見したのですが、この紙芝居的なアンケートのヒントになりそうなものが見つかりませんでした。 アドバイスや、忠告などで結構ですので、回答を頂けると幸いです。

    • 締切済み
    • CGI
  • Perl CGIで、アップロードができない

    Perl my $fhandle = $query ->upload('A'); HTML <INPUT TYPE="HIDDEN" VALUE="C:\temp\1.txt"/> ボタンクリックで、JavaScriptでHTMLのhiddenに値をセットしています。 その値をPerlでuploadすると、値がセットされません。 <INPUT TYPE="FILE" で、手動でセットすると上手くいきます。 なんんとかHIDDENでできないでしょうか? FILEでしか駄目な場合、JavaScriptで、FILEにセットする方法をご教授下さい。 今、現状はIFRAMEでFILEで選択したファイルパスをボタンクリックで、メインのFORMのHIDDENに渡して、CGIを呼んでいます。

    • ベストアンサー
    • Perl
  • perl CGIの初学者です

    PERL CGIの初心者です。CGIをするために Yahoo ジオシティーズ ジオプラスに加入しました。(加入できたことは確認済です) .cgiファイルの置き場所については 「お客様のホームページ内に自由に設置していただけます。 ※ただし、アクセスする場合には、 http://cgi.[サブドメイン].geocities.jp/[Yahoo! JAPAN IDまたはニックネーム]/といったURLになります。 サブドメインがwwwの場合は、 http://cgi.geocities.jp/[Yahoo! JAPAN IDまたはニックネーム]/となります。」 とありました。これの意味がよく分かりませんでしたが 起動する側の.htmlファイル、起動される側の.cgiファイルを 自分のルートディレクトリにおきました。 そして以下の例題6から必要ファイル(enquete-1.html, enquete-2.cgi)をコピーしてきました: http://home.e02.itscom.net/shouji/pc/perl/s-06.html このenquete-1.htmlのうち FORM部分は次のように書き換えました: <FORM method=post action=http://cgi.geocities.jp/my_id/enquete-2.cgi> <UL>. <LI><INPUT type=radio value=0 name=ans>dog. <LI><INPUT type=radio value=1 name=ans>cat . <LI><INPUT type=radio value=2 name=ans>neither.</LI></UL>.<INPUT type=submit value=answer> </FORM> my_idは私のYahoo IDです。 しかし、enquete-2.cgiに起動をかけると 「ページを表示できません。申し訳ありませんが、アクセスされたページは現在ご利用いただけなくなっています。しばらくたってからもう一度お試しください。ご不明な点があればヘルプをご確認のうえ、解決しない場合はヘルプページ内よりお問い合わせください。」 となります。ヘルプページは「お問い合わせ」できるようにはなっておらず Yahoo知恵袋に質問しても返答ありません。SoftBankは、毎度この手を使うので、気になりませんが、 cgiが起動できない原因としては何が考えられるでしょうか? 切り分け方法などご指導ください。

    • ベストアンサー
    • CGI
  • javascriptでCGIを実行するには

    htmlタグ <form method="post" action="・・・/cgi-bin/gogo.cgi"> <input type="text" name="name" size="20" value=""> <input type="submit" value="送信"> 上記で送信ボタンを押すとcgi側でnameを受け取れますが、 以下の場合はcgiは動作するのですが、nameを受け取れません、 受け取れる方法を教えてください。 <script type="text/javascript" language="javascript"> <!-- function gogo(){ document.write('<img src="・・・/cgi-bin/gogo.cgi">'); } // --> </script> </head> <body> <form method="post" action="javascript:gogo()"> <input type="text" name="name" size="20" value=""> <input type="submit" value="送信"> </form>

  • CGI(Perl)で、Javascriptを用いWEBアプリケーション

    CGI(Perl)で、Javascriptを用いWEBアプリケーションを作成しています。 やりたいことは、親子関係(2階層)の2つのプルダウンの作成です。 親のプルダウンを選択すると、 子のプルダウンのリストの内容が、絞り込まれるようにしたいのです。 コマンドボタン(<INPUT type="button"・・・)でsubmit()を使うとうまくいったのですが、 画面全体がリフレッシュされるため、他の入力中の項目がクリアされてしまいます。 javascriptを使って解決したいのですが、行き詰っています。 どうかお知恵をお貸しください。宜しくお願いします。 なお、2つ(親子)のプルダウンのアイテムリストは、 mdbファイル(db1.mdb)で2つのテーブルで用意して、 SQL(select文)で呼び出すようにしてます。 2つのテーブルは、以下のような感じです。 talbe1(親用) ========================== kuni ------------------------ 日本 米国 中国  : ========================== talbe2(子用) ========================== kuni toshi ------------------------ 日本 東京 日本 横浜 日本 名古屋 日本 大阪 米国 ワシントン 米国 ニューヨーク 米国 ロスアンゼルス 中国 北京 中国 上海  :  : ========================== なお、submitを使ってうまくいった時のソース(aaa.cgi)は、 以下のような感じです。 <aaa.cgi> ↓=====================================================  : $oya=$input_data{'oya'}; <FORM name="form1" method="POST" action="aaa.cgi"> <SELECT name="oya"> EOM $rs = $db->Execute("SELECT table1.kuni FROM table1"); while (!$rs->EOF) { print "<OPTION>",$rs->Fields('kuni')->Value,"\n"; $rs->MoveNext; } print <<EOM; </SELECT> <INPUT type="button" value="→" name="sub1" onclick="submit();"> <SELECT name="ko"> EOM $rs = $db->Execute("SELECT table2.toshi FROM table2 WHERE (((table2.kuni)=$oya))"); while (!$rs->EOF) { print "<OPTION>",$rs->Fields('toshi')->Value,"\n"; $rs->MoveNext; } print <<EOM; </SELECT>  : ↑===================================================== よろしくお願いします。

  • javascriptでボタン作成

    こんばんわ,htmlでボタンを表示してcgiを動かすコードを書いています. 現在のhtmlのコードです.my_mkdir.cgiはディレクトリを2つ作るcgiです. <form action="/cgi-bin/my_mkdir.cgi" method="get" target"_self">   <input type="hidden" name="$args[0]">   <input type="hidden" name="$args[1]">   <input type="submit" name="button" value="PowerON"> </form> ボタンを押す→cgi実行の流れまではよいのですが,cgiでhtmlのコードがないとブラウザ上でエラーがでます. 対策として,cgiコード(python)でこのようにリロードするようにして回避しています. print "Location: リロードするURL\n\n" これでは不格好なので,ボタンを押す→cgi実行を可能にするにはjavascriptだとできるかもしれないと聞きました. javascriptでこのようなことは可能でしょうか?hiddenで渡しているパラメータはどのようにすればよいのでしょうか? html・javascript共に初心者です.よろしくおねがいします.

  • CGI(Perl)を作ったがうまく実行されない

    度々すみません。 ~~~~HTML~~~~ <FORM action="test.cgi" method="POST" NAME="FORM"> <div>最大攻撃力:<INPUT type="text" NAME="att"><br></div> <div>防御力:<INPUT type="text" NAME="def"><br></div> <div>クリティ時与ダメ:<INPUT type="text" NAME="cyo"><br></div> <div>クリティ時被ダメ:<INPUT type="text" NAME="chi"><br></div> <div>EXD時与ダメ:<INPUT type="text" NAME="eyo"><br></div> <div>EXD時被ダメ:<INPUT type="text" NAME="ehi"><br></div> <INPUT type=submit value="実行"> <INPUT type=reset value="リセット"></TD> </FORM> ~~~~CGI~~~~ #! c:/perl/bin/perl if($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $query, $ENV{'CONTENT_LENGTH'}); } else { $query = $ENV{'QUERY_STRING'}; } foreach $pair(split(/&/,$query)) { ($l_set,$value) = split(/=/,$pair); $form{$l_set}=$value; } $att=$form{'$att'}; $def=$form{'$def'}; $cyo=$form{'$cyo'}; $chi=$form{'$chi'}; $eyo=$form{'$eyo'}; $ehi=$form{'$ehi'}; $hi=int((($chi*2+$def)+(($ehi*2+$def)/1.2))/2); $yo=int(((($att-$cyo*2)*2)+(($att*1.2-$eyo*2)*2))/2); print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN"> <html> <head><title>被ダメテスト</title></head> <body><p>相手攻撃力は約<b>$hi</b>です。</p> <p>相手防御力は約<b>$yo</b>です。</p></body> </html> END このまま数値を入力して実行しても、「0」と出てきてしまいます。 読み込み(代入?)が出来ていないのでしょうか? 間違えている部分があればご指摘ください。 ※コンパイラはApacheです。

    • ベストアンサー
    • Perl

専門家に質問してみよう