• ベストアンサー

textareaのデータのcgiでの受け取り方

textareaのデータの受け取り方を教えてください。 下記のようなtextareaを作って、データを入力したとします。 <textarea name="command" rows="10" cols="50"></textarea> -----------textarea---------------------- aaa bbbb ccccc ----------------------------------------- この入力データをcgi(perl)で変数として、改行なしで一行づつ受け取りたいと考えています。データを配列(改行なし)として受け取れたら、なおよしです。どのようなコードを書けばよいのでしょうか? よろしくおねがいします。

  • CGI
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • elbend
  • ベストアンサー率50% (7/14)
回答No.2

私の場合以下のようにしてます。 $form{command}=~ s/\x0d\x0a|\x0d|\x0a/<br>/gi; @command = split("<br>",$form{command});

参考URL:
http://www.din.or.jp/~ohzaki/perl.htm#CRLF_2BR
aakkiirraajp
質問者

お礼

回答ありがとうございます。 上記の方法を試しましたが、値が消失してしまいうまくいきませんでした。 しかし、下記の方法で無理やり値を取得できましたので報告しておきます。 my @com = split /\n/, $command; chop(@com); みなさん、ありがとうございました。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

フォームからCGIにPOSTされるデータはあくまでも aaa(改行)bbbb(改行)ccccc です。分ける必要があれば、受け取ったあとで改行コードで(Perlスクリプトで)分割して配列にいれればいいと思います。 #普通はそうしているハズです。 一度書いておけば使いまわせますから。

aakkiirraajp
質問者

お礼

回答ありがとうございます。 私もそう思って、splitで改行で分割して配列で得たのですが、うまくいきません。 具体的には、どうもオリジナルデータがaaa(改行)(改行)(改行)bbbb(改行)(改行)cccccになるのです。 splitで分割するとaaa(改行)bbbb(改行)cccccになってしまいます。さらにsplitで分割すると値を得ることができません。 もし、よければコードで教えてください。

関連するQ&A

  • textareaで改行させたい

    textareaにあらかじめ文字列を表示させたいと思っています。表示させる文字列は配列に入れていて、配列には aaa bbb ccc のように改行コードが入っているのですが、下記のようにすると、 <textarea name="name1" id="id1" cols="65" rows="15" wrap="soft"><%=Arr(1,6)%></textarea> aaa<br>bbb<br>ccc<br> と表示されます。 テーブルに表示させると問題なく改行されて表示されるのですが、textareaだと、上記のようになってしまいます。 どのようにすればよいかご教示ください。

  • perl cgiにて作成したtextareaで改行

    perl cgiにて作成したtextarea内に初期文字列を入力しておくプログラムを組んだのですが、 その初期文字列内で改行を行いたいと思い、何種類か改行を入れてみたのですが、 うまくいきません。 $testbr = "\r\n"; print $q->start_html(-title=>"123", -BGCOLOR=>'#ffffff'), (中略) q->p('<textarea name="freeans" rows="5" cols="30" value=$initText wrap="hard">あいうえお"$testbr"かきくけこ </textarea>'), (中略) $q->end_html; textarea内に あいうえお(改行) かきくけこ という表示をしたいのですが・・・

    • ベストアンサー
    • Perl
  • TEXTAREAの改行をデータへ反映

    よろしくお願いします。 フォーム上で入力した値をCSVに反映させるようなものを作っているのですが、TEXTAREAで改行した値がCSVデータ上で改行されなくて困っています。 <TABLE>  ・  ・  ・ <TR> <TD>コメント:</TD> <TD><TEXTAREA NAME="COMMENT" rows="2" cols="40"></TEXTAREA></TD> </TR> </TABLE> 入力した値: ---------- あああ※ いいい※ ううう        ※位置で改行 ---------- CSVデータ内: ~,あああいいいううう webサーバー・・・HP-UX web・・・IE 開発端末・・・windows2000(Tera Term 使用) 以上。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • <TEXTAREA>の文字入力が自動改行されません

    私の環境はWindows8でIE11です。 実は私が作ったPerlの掲示板の<TEXTAREA>に文字入力をしようとしたら、自動改行されないのに気付きました。 ソースは、次の通りです。 <textarea name=comment cols=70 rows=12 wrap=soft style="font-size:15px"></textarea> どっかに問題があるのでしょうか? それとも、私のPCの環境のせいでしょうか? ちなみに、他のサイトの<TEXTAREA>だと私のPCでも自動改行されます。

  • TEXTAREAについて

    <TEXTAREA cols="100" rows="100" name="edits"> </TEXTAREA> で端までいくと自動的に改行されてしまいます。 これを横スクロールバーを表示して改行させない方法を教えて頂けないでしょうか。 以前の質問で強制的に改行させる方法として wrap を使用するというのがあったので、 nowrap を入れてやってみたのですが、 うまくいきませんでした。 style="overflow-x: scroll;" も試したのですが、 うまくいきません。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • textareaの入力データで無駄な改行が…

    textareaでデータ入力し、perlで拾うと無駄に改行が入ってしまいます。 <textarea name="textarea_data"> a a a </textarea> これをPerlで拾って表示させると a a a と表示されてしまいます。 改行が無駄に一つ入ってしまっているのですが、考えられる原因は何でしょうか? print "$FORM{'textarea_data'}"; で表示させています。\n等は入れていません。

    • ベストアンサー
    • Perl
  • textarea へ、改行させたいテキストデータを書き込むには?

    Perlのprint命令では、print '(1)aaaa <BR>(2)bbbb',"\n"; というように、改行させたい箇所に<BR>を挿入すれば改行させられるとおもいます。ところが、print "<textarea> xxx </textarea>" として、CGIで複数行入力領域を書いたときは、xxxのなかに挿入した<BR>はそのまま文字として表示されてしまいます。  改行させるにはどうしたらいいのでしょうか?  どなたか(ひきつづき^^;;)、御教示をいただければ幸いです。

    • ベストアンサー
    • Perl
  • textareaについて

    textareaに400文字の感想を入力してもらいたいのですが、400文字以上入力することを考え,inputタグと同様にmaxlenght="400"としたいので、400文字以上入力されてしまいます。 <TEXTAREA name="comment" COLS="50" ROWS="5" maxlength="400"></TEXTAREA> textareaではmaxlenghtは効果ないのでしょうか?

    • ベストアンサー
    • HTML
  • テキストエリアの改行を変換(初心者

    <textarea rows="5" cols="10" name="myname">AAA BBB CCC</textarea> 上の内容を送信して、 AAA BBB CCC こんな感じで改行してファイルに書き込みしたいのですが、そのままでは改行されず1行で書き込まれてしまいます。 1つずつ改行するにはどうすればいいのでしょうか よろしくお願いします。

    • ベストアンサー
    • Perl
  • textareaに改行を表示させる

    今htmlとphpで下記のプログラムを書いています。 <?php print "<TEXTAREA cols=50 rows=3>"; print $tem2[0]; print "</TEXTAREA>"; ?> ちなに$tem2をprint_rで表示させると図1のようになります。 そして上記のプログラムを実行すると図2のようになり、改行が<br>や<br />となり改行してくれません。 textareaで$tem2[0]を図3のように改行をきちんとして表示させたいと考えております。 どのようにすればよろしいでしょうか? ご存じの方いらっしゃいましたら、できれば具体的に教えていただけないでしょうか? よろしくお願いします。

専門家に質問してみよう