• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGI(Perl)とHTMLについて)

CGI(Perl)とHTMLについて

このQ&Aのポイント
  • CGI初心者のためのPerlとHTMLの基礎知識について解説します。
  • CGIのページでHTMLの要素を呼び出す方法やカスタマイズについて説明します。
  • Perlの記述によるテーブルの挿入時に起きる問題とその解決策について考えます。

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

  • ベストアンサー
  • chupark
  • ベストアンサー率41% (90/218)
回答No.2

再び回答しにきました。 1. iframeについて iframeタグにはそれ自身のサイズを指定するwidth(幅) と height(高さ)の属性があります。 また、スクロールに関しても、scrolling=noとすることでスクロールバーの表示もコントロールできます。 <iframe src="hoge.cgi" width="50%" height="200" scrolling=no></iframe> 2. select周りについて ようやくお悩みの部分がわかってきました。 純粋なHTMLなら理解されているようですね。 ならば、「foreach $i (@PREFs) 以下の部分は selectタグのoption部分にあたる部分である」という風に考えてください。 <<"---HTML---"; 部分をまたがっても構わないのです。</select>の部分も含めてテーブルにしてしまってください。 要は、perlって言語を使ってはいますが、結局はHTMLを書いているのです。 今回のプログラムをブラウザで実行させて、 画面に出した状態でソースを表示してみると分かりますが、 perlはhtmlを動的に書き出しているのであって、 結局はprintなどで書き出されるhtmlがページのレイアウトを決めます。 したがって、<<"---HTML---"; 部分をまたがってても、最終的に出力されるhtmlが正しければよいのです。

kasa2003
質問者

お礼

chupark様 ありがとうございます。1、の属性はあとで気付きました。これは問題なかったのですが、2、にて <<"---HTML---";を気にせずにテーブルで挟んだら、うまくいきました!項目がはみでらずに表示されてます。 これでレイアウトはなんとかなりそうです。どうもご親切にありがとうございました。 なぜこうなるのか仕組みがまだ理解できてませんが、Perlも少しづつ勉強していこうと思います。また機会がありましたらよろしくお願い致します!

その他の回答 (1)

  • chupark
  • ベストアンサー率41% (90/218)
回答No.1

1. カウンタープログラムなどのように、表示結果がGIFで表示されるようなものは<img>タグで埋め込まれていることがありますね。 そうではなく、formなども表示させたいのであれば、フレームか iframe を使うのはどうでしょうか? <iframe srce="hoge.cgi"></iframe> 2. perlで print と書かれいている部分は単純にその内容を出力する部分です。 HTML部分へ細工をしてレイアウトをいじってみてはどうでしょう? 具体的には、tableタグなどで かきく、あいうえお の部分と <select>の部分とを別のセルへ入れるようにします。 ちなみに、例文でお書きになった部分は、 selectの中身になる option の部分をプログラムで制御して @AIUEOs に入っているものを表示させるようにしてあるようです。 プログラムでoptionをすべて書き終わった後、selectの閉じタグを改めてprint で出力させているので閉じタグからはじまったような形になっています。

kasa2003
質問者

補足

早速のご回答、ありがとうございます。 1、については仰せのとおり、<iframe src="~ で表示できました。 ただ、フォームの大きさを、表示させたいサイズに指定するとスクロールバーがでてきてしまいます(また課題が・・・) 2、例えば、 <table> <tr> <td>かきく</td> <td> <select name="kakikku"></select> <option value="かきく"$kakiku_selected{'かきく'}>かきく</option> </td> </tr> <tr> <td>あいうえお</td> <td> <select name="aiueo"></td> </tr> </table> ---HTML--- foreach $i (@PREFs) { print "<option value=\"$i\"$aiueo_selected{$i}>$i</option>\n"; } print <<"---HTML---"; </select> ---HTML--- このように名称と入力フォームをそれぞれテーブルに入れようとすると、“あいうえお”の方がプルダウンメニューからはみ出して表示されてしまうんです。 “かきく”の方は、正しく表示されます。“かきく”の方は<select>タグの直後に<option>でメニュー項目がきてるから正常に表示されるのだと思いますが、 “あいうえお”の方は、閉じタグ</select>だけが、挟んだテーブルタグの外側にきてしまってるからだと思うのですが、いかがでしょうか? >プログラムでoptionをすべて書き終わった後、selectの閉じタグを改めてprint で出力させているので閉じタグからはじまったような形になっています。 たぶんこの辺がよくわかっていないためだと思います。 </select>も含めてテーブルで囲むべきでしょうか。 そうすると、 ---HTML--- <<"---HTML---"; をまたがってテーブルを記述することになるんですが・・・ でも大変参考になりました。ありがとうございました。

関連するQ&A