私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇958:
Re[3]:複数行テキストボックス [moon] 02/24 21:52

 └◇959:Re[4]:補足 [moon] 02/24 22:00
  └◇960:Re[5]:補足 [ミル] 02/25 18:01
   └◇961:Re[6]:補足 [moon] 02/25 22:16
    └◇962:Re[7]:補足 [ミル] 02/26 13:05
     ├◇963:Re[8]:補足 [moon] 02/26 18:56
     └◇964:階層が深いのでこちらに [ミル] 02/27 12:39<-last


958● Re[3]:複数行テキストボックス[ moon ] 2004 02/24 21:52
> どうやってtextareaの内容を$cmに代入すれば良いのかが分かりません……。
>
> と、com_afterの方を見てみたらしっかり代入してありました^^;
> 恐らくname=****と指定をすれば勝手に読み込んでくれると思い、afterの方で代入していたのがcomだったので
> name=comとし、やってみたらちゃんと反映されました。
> で、textareaの内容に今のコメント文を表示させるので内容の部分に$cmを入れて
> print qq|<textarea rows=5 cols=60 name=com>$cm</textarea>|;
>
> と言った様にしたらちゃんと作動しました。バッチリです!

改行処理を追加しましたでしょうか?
例えば改行の置換文字を:BR:とした場合は、com_beforeのほうでは表示前に、
  ($tmp = $cm) =~ /:BR:/\n/g;
を実行してprint qq|<textarea name=com rows=5 cols=60>\n$tmp</textarea>|;
com_afterではuserout前に、
  ($cm = $Fm{'com'}) =~ s/<br>/:BR:/g;
スレッド一覧


959● Re[4]:補足[ moon ] 2004 02/24 22:00
> 改行処理を追加しましたでしょうか?
> 例えば改行の置換文字を:BR:とした場合は、com_beforeのほうでは表示前に、
>   ($tmp = $cm) =~ /:BR:/\n/g;
> を実行してprint qq|<textarea name=com rows=5 cols=60>\n$tmp</textarea>|;
> com_afterではuserout前に、
>   ($cm = $Fm{'com'}) =~ s/<br>/:BR:/g;

'<'や'>'がユーザデータに入らないように:BR:としましたが、<br>と入っても良いなら、
・($tmp = $cm) =~ /:BR:/\n/g;の:BR:を<br>に。
・($cm = $Fm{'com'}) =~ s/<br>/:BR:/g;はいらない。
でも良いだろうと思います。
# <br>のままで良いとすればコメントの表示時に余計な置換をしなくても大丈夫なので先ほど書いたものより良いかもしれません。
スレッド一覧


960● Re[5]:補足[ ミル ] 2004 02/25 18:01
うぅぅぅーむぅ。
言われたとおりにやってみましたが、ローカルでエラーが出るばかりでした……。
改行処理は私のとこでは必要は無いと思います。:BR:で改行!と言う風に何度も言っていく予定(まだサイト公開してません;)なので、自動改行してしまったら多少混乱すると思うので。(生意気な口聞いてごめんなさい)

実際にはどんな処理をしたのでしょうか?
($tmp = $cm) =~ /:BR:/\n/g;
ここの部分が良く理解できなかったので……
スレッド一覧


961● Re[6]:補足[ moon ] 2004 02/25 22:16
> 改行処理は私のとこでは必要は無いと思います。:BR:で改行!と言う風に何度も言っていく予定(まだサイト公開してません;)なので、自動改行してしまったら多少混乱すると思うので。(生意気な口聞いてごめんなさい)

ちょっと勘違いをなさっているのではないでしょうか?
先に書いた「改行処理」の意味はテキストボックス上の改行(\n)とCGI上の改行(<br>)が異なるのでこれを変換する処理ということなのですが・・・。

> 実際にはどんな処理をしたのでしょうか?
> ($tmp = $cm) =~ /:BR:/\n/g;
> ここの部分が良く理解できなかったので……

分解すると、
  $tmp = $cm;
  $tmp =~ s/:BR:/\n/g;
です。
要するに$cmのデータを変えずに:BR:を\nに置換しているだけです。
スレッド一覧


962● Re[7]:補足[ ミル ] 2004 02/26 13:05
> ちょっと勘違いをなさっているのではないでしょうか?
> 先に書いた「改行処理」の意味はテキストボックス上の改行(\n)とCGI上の改行(<br>)が異なるのでこれを変換する処理ということなのですが・・・。
いえ。勘違いはしてないと思います^^;
テキストエリアでは改行は反映されないとして、:BR:と言う改行タグを使ってくださいと呼びかけるつもりだったんですね。

ですが……やっぱり何度やってもエラーが出てしまいます。
near "/
/\
とエラーが出ているのですが、変なところで改行(/と/の間です)が行われているあたり、絶対/\n/が怪しいと思うのですが何をすればよいのやら……。
スレッド一覧


963● Re[8]:補足[ moon ] 2004 02/26 18:56
> いえ。勘違いはしてないと思います^^;
> テキストエリアでは改行は反映されないとして、:BR:と言う改行タグを使ってくださいと呼びかけるつもりだったんですね。

反映されないのはそうなのですが何も置換処理をしないと<br>というゴミが付くことになると思いますよ。

> ですが……やっぱり何度やってもエラーが出てしまいます。
> near "/
> /\
> とエラーが出ているのですが、変なところで改行(/と/の間です)が行われているあたり、絶対/\n/が怪しいと思うのですが何をすればよいのやら……。

見直してみましたら/の前のsが抜けていました。
これを修正すれば大丈夫だと思います。
スレッド一覧


964● 階層が深いのでこちらに[ ミル ] 2004 02/27 12:39
なるほど……。sを加えたらバッチリでした。

置換は覚えていたのにこちらも気付きませんで……申し訳ないです。
確かに、変更する前にコメントを変えようとしたら<br>がズラリ……。これではよくないですね^^;
ありがとうございました!
スレッド一覧

CGIROOM