みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

無駄な改行を何とかしたいです

perl cgiでまだまだわからないことだらけなので、まだ質問します・・・

print $q->start_html(-title=>"画面", -BGCOLOR=>'#ffffff'),
$q->header(-charset=>"Shift_JIS"),# Content-type: text/htmlを書き出します
$q->p('<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#ff00ff">'),
$q->p('<FONT COLOR="red">aaa</FONT>'),
$q->hr,
$q->p('<form method="post" action="ppp.cgi">'),
$q->p('<FONT color="blue">【a】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="mmm" VALUE="" SIZE="25" MAXLENGTH="25">'),
$q->p('<FONT color="blue">【b】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="nnn" VALUE="" SIZE="25" MAXLENGTH="25">'
$q->p('<FONT color="blue">【c】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="ttt" VALUE="" SIZE="25" MAXLENGTH="25">'
$q->p('<FONT color="blue">【d】</FONT>'
$q->p('<select name="question" size="1" multiple="multiple">'
$q->p('<option selected="selected" value="aaa">aaa?</option>'),
$q->p('<option selected="selected" value="bbb">bbb</option>'),
$q->p('<option selected="selected" value="ccc">ccc</option>'),
$q->p('</select>'),
$q->p('<FONT color="blue">【e】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="ans" VALUE="" SIZE="25" MAXLENGTH="25">'),
$q->p('<FONT color="blue">【f】</FONT>'),
$q->p('<textarea name="freeans" rows="5" cols="30" value="$initText" wrap="hard">$initText</textarea>'),
#$q->p('<textarea name="freeans" rows="5" cols="30" value=$initText wrap="hard">あいうえお </textarea>'),
$q->p('<input type=submit value="送信">'),
$q->p('</form>'),# 送信データここまで
$q->end_html;

としているのですが、表示のほうが
【a】

テキストボックス入力欄

【b】

テキストボックス入力欄

【c】

テキストボックス入力欄
・・・

と、テキストボックス入力欄の上下に改行が入っていしまいます。
消す方法はございますか?pタグがダメなんでしょうか?

それとContent-Type: text/html; charset=Shift_JIS が最上部に表示されてしまいます。
   
   $q->header(-charset=>"Shift_JIS"),# Content-type: text/htmlを書き出します

の行が原因だということはわかるのですが・・・・変更方法がわからないです。
教えて頂きたいです。よろしくお願いします。

投稿日時 - 2012-05-09 17:33:19

QNo.7466604

困ってます

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

一行ずつ$q->p()してるので、
 <p><FONT color="blue">【a】</FONT></p>
 <p><INPUT TYPE="text" NAME="mmm" VALUE="" SIZE="25" MAXLENGTH="25"></p>
になっているのでしょう。pタグは分かりますよね?


$q->p()は消して、こっちの方がラクかも。

# EOF(任意の文字)で囲まれた範囲を$bodyに代入する
my $body = <<EOF;
<body>
<font...
 .
 .
 .
EOF # ココ、先頭にスペース入れたりすると動かないので注意

print $body;


CGIのモジュールはパラメータ受け取ったりするのは便利ですが、
ちょっとしたHTML書くだけなら

#!/usr/bin/env perl
my $msg = "<div>Hello, World!</div>";

print "Content-type: text/html\n\n";
print $msg;

これでも。

投稿日時 - 2012-05-09 18:12:47

お礼

返信ありがとうございます。
助かります。

投稿日時 - 2012-05-16 13:27:02

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問