テキストエリアの<br />を非表示にするには
掲示板のようなCGIを利用し、入力フォームから送信された情報が保存されるプログラムを利用しています。
そのcgiファイルに記述されたコードに以下の記述があります。
sub decode {
&ReadParse;
while (($key,$val) = each %in) {
if ($key !~ /upfile/ ) {
&Jcode'convert(*val, "utf8", "", "z");
if ( $key !~ /label_name/ ) {
$val =~ s/</</g;
$val =~ s/>/>/g;
}
$val =~ s/\r\n/<br>/g; $val =~ s/\r|\n/<br>/g;
}
$in{"$key"} = "$val";
}
$_v = $in{"_v"}; $del_img = $in{"del_img"};
}
この記述によりテキストエリアで改行された際に「<br>」に変換されると思うのですが、これを<br>から<br />に変えるため、
$val =~ s/\r\n/<br>/g; $val =~ s/\r|\n/<br>/g;を
$val =~ s/\r\n/<br \/>/g; $val =~ s/\r|\n/<br \/>/g;と変えました。
これにより、保存される改行コードが<br>から<br />に変わったのですが、その情報を編集するため再度保存された情報の入力フォームを呼び出すと、
テキストエリアでは改行されず、改行場所に<br />と入力されてしまいます。
もとのコードではテキストエリア内の改行は<br>が表示されず、ちゃんと改行されていました。
そこで以下のように書き直してみたのですが、やはり状況は変わりません。
sub decode {
&ReadParse;
while (($key,$val) = each %in) {
if ($key !~ /upfile/ ) {
&Jcode'convert(*val, "utf8", "", "z");
if ( $key !~ /label_name/ ) {
$val =~ s/</</g;
$val =~ s/>/>/g;
$val =~ s/ / /g;
}
$val =~ s/\r\n/<br \/>/g; $val =~ s/\r|\n/<br \/>/g;
}
$in{"$key"} = "$val";
}
$_v = $in{"_v"}; $del_img = $in{"del_img"};
}
改行コード<br>を<br />に変更し、保存された情報を呼び出してもテキストエリアで改行コード<br />は表示されることなく改行される記述方法を教えてください。
分かりにくい文章で申し訳ありませんがよろしくお願いします。
お礼
<pre></pre>で囲んだらバッチリでした。 タグの勉強不足でした。 ありがとうございました。