• ベストアンサー

textarea形式のフォームで複数行入力したテキストデータを保存すると、複数行のデータができてしまう現象を回避する方法

「テキストファイルのデータを読み込み、html画面のフォームに表示させ、データを修正後、元のテキストファイルに書き戻す」というCGIを作成中です。 テキストファイルのデータの並びは決まっていて、例えば3番目のデータが「名前」4番目のデータが「住所」だったりします。 ここで、複数行の入力が必要なフィールドをが必要となり、"textarea"形式のフォームを設定したところ、複数行のインプットをすると、テキストファイルにも複数のデータができてしまいました。2行のデータをインプットすると、データも2行になってしまい、後のデータがずれてしまいます。 そこで「複数行のテキストデータを、改行マークをつけたまま、1行のデータとして保存し、読み込んでtextarea 形式のフォームに表示させるときは、改行されて表示する」という処理が実現できるよう、時間をかけて調べておりますが未だ判らない状態です。  ご存じの方がいらっしゃいましたら是非教えて頂きたく、宜しくお願いいたします。

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

  • ベストアンサー
回答No.1

たぶん、改行コードが処理されてないからでしょう。 googleで「Perl 改行 デコード」で調べれば、 出てくると思いますよ。 私は下のPerl検索サイトで、似たような機能の スクリプトを探して、中身を参考にしてたりします。 http://msvs.s1.xrea.com/ 私も独学なので、処理の負荷やスマートな書き方を 参考にしています。 もしからしたら、こっちかもしれないので、htmlの タグの自動改行のタイプも載せておきます。 http://www.tagindex.com/html_tag/form/textarea.html こっちはPerlではなくhtmlタグの機能ですよ。^^;

参考URL:
http://x68000.q-e-d.net/~68user/webcgi/bbs-perl-1.html
tommy-t
質問者

お礼

早速ご回答をいただき、まことに有り難うございます。 おかげさまで、長時間悩んでいた問題が、すぐに解決しとても嬉しく思っております。教えていただいたサイトは、他にも役に立ちそうな内容がたくさんあり、今後も活用したいと思います。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

改行コードをそのままでは当然ファイルに書き込んだ時にも改行されますので#1の方の参考URLのように<br>等に置換して保存します。 textarea内に表示する時には改行コードに置換してから表示します。

tommy-t
質問者

お礼

早速ご回答をいただき、まことに有り難うございます。 <BR>に置換することで、おかげさまで、長時間悩んでいた問題が、すぐに解決しました。

すると、全ての回答が全文表示されます。

関連するQ&A