ベストアンサー CGI.pmで<button>タグは出力できるのか!? 2009/05/18 17:20 CGI.pmで<button>タグを出力する方法を教えてください。 button()メソッドだと<input type="button">という別のタグが出力されてしまいます・・・ みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー t-okura ベストアンサー率75% (253/335) 2009/05/19 22:19 回答No.1 CGI.pm のソースコードの中に <button が見当たらないので、 CGI.pm では <button> タグは作れないと思います。 質問者 お礼 2009/05/21 09:54 t-okuraさん、ご回答ありがとうございます。 ソースコードの調査、誠にありがとうございましたm(__)m 私もちょっぴり覗いてみたのですが、そんな感じがしました・・・。 というわけで<button>に関しては自分で書くことにしました(ちょっと美しくないですけど)。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Perl 関連するQ&A CGI.pmで<s>タグは出せないのでしょうか。 CGI.pmで<s>タグは出せないのでしょうか。 同じような質問で恐縮です。 HTMLでは、取消線のための、 <s>と<strike>という全く同じ意味の2個のタグがありますが、 これをCGI.pmの関数で出力しようとすると <strike>は出せるのですが、<s>はどうやって出すのでしょうか。 CGI.pmでは<strike>に統一されて、<s>のための関数はサポートされていないのでしょうか。 それとも<s>なんてタグは既に廃止されて、今では存在しないのか??? CGI.pmでかけないタグってありますか? 質問タイトルのとおりなのですが、 CGI.pmで書けないHTMLタグってありますでしょうか? 一覧などがあればURLを教えてください。 また、<div id="name"> や<div class="name"> は、どうやって書くのでしょうか? バージョンによっては、 スタイルシートを読んだりする 論理的な意味しかないタグはサポートしていないんでしょうか。 Input Type Buttonのタグについて ◎input type=button の色を変えるには <INPUT TYPE="BUTTON" NAME="BUTTON02" VALUE="テスト"> この中の↑どこに色を追加したらよいのでしょうか? ◎input type=button の型をhttp://okwave.jp/ のページ上の {例}『 ? 質問する 』『!質問、回答を見る』 『(ハートマーク)お礼を見る』のような四角の型にするには この中の↓どの部分を変更又はどの部分に 何を追加したらよいのでしょうか? <INPUT TYPE="BUTTON" NAME="BUTTON02" VALUE="テスト"> ◎どうしたら『 ? 質問する 』『!質問、回答を見る』 『(ハートマーク)お礼を見る』のように?、!、ハートマーク などの記号や絵をinput type button に文字を書き込む時、 ボタン内の文字の前に記号や絵をつけられるのでしょうか? ◎やっとボタンを作ることができたのですが、 クリックしても画面が変わらないのはURLを設定していないからだと思うのですが この中の↓どこへ設定したら画面を変えることができますか? <INPUT TYPE="BUTTON" NAME="BUTTON02" VALUE="テスト"> 上手に説明できませんが、ご存知の方がおられましたら教えて下さい いろいろ調べてやってみたのですが、1つ1つの部分、部分説明があっても全部を1つのタグとしてつなげることができません。 急ぎでかなり困っております、宜しくお願い致します。 沢山の質問ですみません。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム CGI.pmで'&'が'&'に置き換わってしまう! 文字「&」を出力したいのにCGI.pmが自動的に「&」に変換してしまいます。 具体的には、 <a href="abc" accesskey="&">abc</a> のような文字列を出力させるために、 print($q->a({-href => 'abc', -accesskey => '&'}, 'abc')) というコードを実行したのですが、 出力される文字列は、 <a accesskey="&" href="abc">abc</a> のように「&」が自動的に「&」に置き換わってしまいます。 これの解決策として、オブジェクトを使用せずに、直接CGI.pmのメソッドを呼び出すと、なぜか変換されません。 すなわち、上のコードの「$q」の部分を「CGI」として、 print(CGI->a({-href => 'abc', -accesskey => '&'}, 'abc')) とします。 これは何か意味があるのでしょうか。それともただのバグ? 直接CGI.pmのメソッドを呼び出さなくても解決する方法はありますか。 accesskeyに関するご意見は、先日質問したこちらのスレへ頂けるとうれしいです。 http://oshiete1.goo.ne.jp/qa5707867.html CGI.pmのstart_htmlで思い通りのMETAタグを出せない CGI.pmのstart_html()を使用してMETAタグを出力しようとしているのですが、思うように出力できません。 具体的には次の文字列と全く同じものを出力しようとしています。 <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> いろいろやってみたのですが、どれも微妙にこれとは違うのです。 どなたか教えてください・・・。 今のところ、これに最も近かったのは、 print($q->start_html(-head => $q->meta({"-http-equiv" => "Content-Type", -content => "text/html; charset=EUC-JP"}))); で、これの出力(METAタグ部分)は、 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> でした。 お尻にスペース1個とスラッシュが付加されてしまいます・・・ <form>タグに2つのボタン <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは フィールド「CASE」に1を入れて送信、 HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは フィールド「CASE」に2を入れて送信、 HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。 submitではなくbuttonで送信 事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。 Input Type Buttonのサイズ変更 *Input type buttonのフォントサイズを大きくする場合 どこ↓につなげたらいいのでしょうか? <INPUT TYPE="BUTTON" NAME="BUTTON02" VALUE= "お問い合わせ"onClick="location.href='http@@@@@@@'"> *Input type button の型を四角に変更する場合や サイズを大きくする場合はこのタグ↓のどこに入れたら いいのでしょうか? <INPUT TYPE="BUTTON" NAME="BUTTON02" VALUE= "お問い合わせ"onClick="location.href='http@@@@@@@'"> お手数をお掛け致しますが宜しくお願い致します。 いままでbuttonが押された回数をリアルタイムで表示したい タイトル通りです。 <INPUT type="button" value="どうぞ"> が押されたとき、そのボタンの下に(どこでもいいけど)いままでそれがクリックされた回数をリアルタイムで表示したいんです。 例えば、今までボタンはAさん、Bさん、Cさんに合計100回押されていて、Dさんがbuttonをクリックすると、直後に[100]というのが[101]になってほしいんです。 なにかそういうタグはないでしょうか? (他のユーザにも継続するタグだから、CGIって感じがしたのでここに書きました) CGI.pmのcheckboxの-labelにHTMLタグを含んだ文字 CGI.pmのcheckboxの-labelにHTMLタグを含んだ文字列を渡すことはできますか 具体的には、CGI.pmのcheckbox関数を使って次のような文字列を生成したいです <label><input type="checkbox" name="abc" value="xyz" accesskey="A" />abc(<span style="text-decoration: underline">A</span>)</label> 次のソースでうまくいくと思ったのですが、 $q->checkbox(-name => 'abc', -value => 'xyz', -accesskey => 'A', -label => 'abc(' . $q->span({-style => 'text-decoration: underline'}, 'A') . ')') 実際に返される文字列は、 <label><input type="checkbox" name="abc" value="xyz" accesskey="A" />abc(<span style="text-decoration: underline">A</span>)</label> のように-labelに指定したHTMLタグが&○○;のようにエスケープされてしまいました・・・(T_T) submit buttonの違い input type="submit" input type="button" button要素 の3つは何が違いますか? 【htmlタグ】inputタグの書き方について 現状は <input type="text">のテキスト入力エリアが存在します。 それを<form>タグで囲い、 <input type="button">のボタン押下にてform内容を送信していますが、 ボタンではなく、<a>タグのように、ハイパーリンクのような見た目にしてform内容を送信したいです。 どのように修正すればよろしいのでしょうか。宜しくお願いします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム cgi.pmを使ったcgiに変更したのですが・・ http://okwave.jp/qa/q7449935.html すみません、間違えて解決を押してしまいました・・・解決していないです。 前回返信いただいた内容を参考に、cgi.pmを使ってみることにしたのですが、 上手くいきません。 ボタンが表示されなくなってしまいました。 perlのcgiは作り方が色々あって選択が大変です・・・・・ #!/usr/bin/perl # wT付けるとエラー # 2012/05/01 cgi.pm使用開始 require 'cgi-lib.pl';# cgi-lib.plを呼び出す require "jcode.pl";# jcode.plライブラリを組み込む ########################################################################### use strict; use CGI; my $q = new CGI; print $q->header(-charset=>"Shift_JIS"); print $q->start_html(-title=>"てすと", -BGCOLOR=>'#ffffff'), $q->li, # 空白? $q->center($q->h1('CGI.PM')), # 文字を大きく書く $q->br, $q->br, $q->li('<FONT color="brack">テスト?</FONT><BR>'), $q->li('<form action = \"***.cgi\" method=\"post\">');# ***.cgiにpostで送信 $q->li('<BUTTON type="submit"> テストボタン </BUTTON>'), $q->li('</form>'), $q->br, $q->strong("強調文字"), $q->br, $q->end_html; $q->hr, # 線を引く print "以下のパラメータを受け取りました。<BR>"; my ( $name, $value ); foreach $name ($q->param ) { print "$name:\n"; foreach $value ( $q->param( $name ) ) { print " $value\n"; } } exit; CGI.pmでHTMLのコメントタグを出力する関数はありますか? CGI.pmでHTMLのコメントタグを出力する関数はありますか? 例えば次のような文字列を出力する関数はありますか。 <!--- document.write("abc".bold()) //---> 阿呆みたいな質問ですみません m(__)m htmlで呼び出したCGIの出力が文字化けする 下記のInput.cgiというスクリプト(改行コードLF, 文字コードUTF-8) ---------------- #! /usr/bin/perl $method = $ENV{'REQUEST_METHOD'}; if ($method eq 'POST') { read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); } elsif ($method eq 'GET') { $buf = $ENV{'QUERY_STRING'}; } print "content-type: text/html\n\n"; print "メソッドは$methodでした。<br>\n"; print "受け取ったデータは$bufでした。\n"; ---------------- があります。これをブラウザで見ると(入力なしのまま) 「メソッドはPOSTでした。 受け取ったデータはxxxでした」 と正常に表示されます。 次に次の内容のhtml(改行はLF,文字コードはShiftJIS) ------------- <html><head> <title>FORMによるデータ転送</title></head> <body> <form method="POST" action="myInput.cgi"> <input type="text" name="text"><br> <input type=submit value="送信"> <input type=reset value="取消"> </form></body></html> -------------- をブラウザで表示させ、inputボックスに英数字(または日本語)を入力し、「送信」をクリックすると、今度はCGIスクリプト中の日本語を含めて総ての日本語出力が文字化けしてしまいます。 これが起きるのは、htmlとCGIの文字コードが異なるからでしょうか? 文字化けを止めるには何をすればよいのでしょうか? 教えて下さい。お願いいたします。 同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変 同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変えたい。 例えば、 以下のように、同じフォーム内に2つのボタンを用意し、 片方のボタンをクリックすると、現在のページ(aaa.cgi)へ戻り、 もう片方のボタンをクリックすると、別のページ(bbb.cgi)へ飛ぶようにしたい。 なお、何れのボタンもサブミットしたい。 ↓(aaa.cgi)================================= : <form name="frm1" action="???" method="post"> <input name="t1" type="text"> <input name="t2" type="text"> : <input name="b1" type="button" onClick="submit();"> <input name="b2" type="button" onClick="submit();"> : </form> : ↑(aaa.cgi)================================= 良い方法はないでしょうか。 ご存知の方、ご教授ねがいます。 よろしくお願いします。 cgi.pmでファイルアップ炉ロードします。ファイルが存在しないときは・・・ HTMLで <input type="file"...> として、参照ボタンを押すとファイルアップロードができるようにし cgi.pmを使って、webサーバに画像をアップロード掲示板をいま使っているのですが、参照ボタンを押さずにinput type=fileのテキストボックスにでたらめの単語を入れても、送信が出来てしまいます。ゼロバイトのファイルがサーバにできるわけですが・・・ このようなことを対処するにはどうすればいいのですか? でたらめなファイルメイだったら-1を返すなどといったような使い方をcgi.pmでできますか? もしよろしければ、回答よろしくお願いします。 CGI.pmでラジオボタンを思い通り表示できない <INPUT TYPE="radio" NAME="bread" VALUE="wheat" CHECKED> 小麦パン<BR> <INPUT TYPE="radio" NAME="bread" VALUE="white"> 白パン<BR> <INPUT TYPE="radio" NAME="bread" VALUE="rye"> ライ麦パン<BR> CGI.pmでこれと同じ出力をするにはどうすればよいのですか。 解説サイトなどを見よう見まねで作った私のソースは次のとおりです。 #!/usr/bin/perl use CGI(-no_xhtml); my($q) = CGI->new; print( $q->header(-charset => "EUC-JP"), $q->radio_group(-name => "bread", -value => "wheat", -checked), " 小麦パン", $q->br, "\n", $q->radio_group(-name => "bread", -value => "white"), " 白パン", $q->br, "\n", $q->radio_group(-name => "bread", -value => "rye"), " ライ麦パン", $q->br ) これの出力結果は次のとおりです(´д`) <input type="radio" name="bread" value="wheat" checked="checked" checked>wheat 小麦パン<br> <input type="radio" name="bread" value="white" checked="checked">white 白パン<br> <input type="radio" name="bread" value="rye" checked="checked">rye ライ麦パン<br> 近づいてきてはいるのですが、全部のラジオボタンにchecked="checked"が付いてしまっています(´д`) あと、valueで指定した文字列がタグの外に出てきてしまっています(´д`) form内にbuttonタグを入れると、再読み込み form内にbuttonタグを入れると、再読み込みが発生してしまいます。 結果、onclickで指定した動作の邪魔をしてしまって困ってます。 再読み込みをさせない方法は無いでしょうか? よろしくお願いします。 CGIの処理によって表示するウィンドウを変えたい 商品の管理画面を作成しています。 一覧画面で、まずラジオボックスで削除と修正のモードを選択して、次に商品の写真をクリックすると別ウィンドウが開いて削除画面なり修正画面を表示するというCGIを作成しています。 formタグの中は以下の感じにしました。 <form name="choice" method="get" target="profile" action="management.cgi"> <p> <input type="radio" name="mode" value="0" /><br /> <input type="radio" name="mode" value="1" /> </p> <p> <button type="submit" name="id" value="001" /> 001 </button><br /> <button type="submit" name="id" value="002" /> 002 </button> </p> </form> これでCGIに対して、モードの選択と商品IDを送信し、処理結果を別ウィンドウに表示することが出来ます。 しかし、このやり方だと、処理を差し戻す場合も別ウィンドウに表示されてしまいます。 つまり削除と修正の選択を忘れたまま商品を選択してしまった場合、「削除、または修正を選択してください。」というコメントを追加して元の画面へ戻るようにしてあるのですが、この画面だけは別ウィンドウでなく元のウィンドウに表示させたいのです。 こういう表示ウィンドウの使い分けは出来るのでしょうか? CGIの言語はPerlを使用しています。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
t-okuraさん、ご回答ありがとうございます。 ソースコードの調査、誠にありがとうございましたm(__)m 私もちょっぴり覗いてみたのですが、そんな感じがしました・・・。 というわけで<button>に関しては自分で書くことにしました(ちょっと美しくないですけど)。