- ベストアンサー
FROMのTEXTAREAに関する質問
PHP駆け出しの初心者です。 早速ですが質問です。 『form』タグの『textarea』をPHPから 使用したときにおかしな現象になります。 下記が、現象の出るコーディングを簡単に書いたものです。 ******************************************************<html> <head> <title>PHP_在庫管理_新規入庫処理</title> <body> <?php If (@$_POST){ $MEMO=@$_POST["MEMO"]; } ?> <form name="MEMO_TEST" method="post" action="MEMO_TEST.PHP"> メモ<textarea name="MEMO" cols="60" rows="5" wrap="hard"> <?php echo "$MEMO"; ?> </textarea> <input type="submit" value="更新"></FORM> </body> ************************************************************ 上記のを実行すると、実行した時点で既に『textarea』内に 複数の『tab』データが入力された状態になってます。(;_;) さらに困ったことに、『更新』ボタンを押したときに テキストエリアに入力された内容を 一旦変数『$MEMO』に入れ、そのまま再度テキストエリアへ戻してる のですが、戻すときにさらに複数の『tab』データが付加されて しまいます。 『更新』ボタンを押すたびにどんどん『tab』データが付加されてしまいます。一体何故こうなってしまうのでしょうか? どなたかご教授の程よろしくお願いいたします。(;_;)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Tabの問題は私の環境で再現する事が出来ませんでしたが、いくつかアドバイスさせていただきたいと思います。 * if( @$_POST ) の @は必要? 私の今までの環境ではデータがPOSTされてきているかを判別する際に@はつけなくとも、ERRORもWARNINGも表示された事はありません。 もし特別な理由が無い限り、@は処理が重いので使わない事をお進めします。 * echo "$MEMO"; これはあまりよろしくない…と言うか私の環境ではしっかり怒られてしまいました。 ダブルクォーテーション内に変数を含める場合は echo "{$MEMO}"; の様にすると良いでしょう。 この場合でしたら echo $MEMO; で良いですよ。 * textarea textareaは<textarea>から</textarea>の間の文字をテキストエリアの中に表示しますよね(当たり前ですが…)。 その際にtabや\n(改行コード)※も文字として読み込んでしまいます。 試しに <textarea> :D XD </textarea> ( 空白部分はtab )の様に編集して、ブラウザから見てみて下さい。 tabや改行が反映されていると思います。memphisさんやWabisuke_Sの仰る様に、改行やタブが間に入ってしまっていないかを確認してみて下さい。 私は以下のコードで期待通りの動作を確認しました。 ---------------------------------------------------------------- <?php if( $_POST ) $MEMO = $_POST["MEMO"]; else $MEMO = NULL; ?> <html> <head> <title>PHP_在庫管理_新規入庫処理</title> <body> <form name="MEMO_TEST" method="post" action="MEMO_TEST.PHP"> メモ<textarea name="MEMO" cols="60" rows="5" wrap="hard"><?php echo $MEMO; ?></textarea> <input type="submit" value="更新"> </form> </body> ---------------------------------------------------------------- 環境 OS: Mac OSX 10.4.11(IntelMac) Apache Version: Apache/2.0.59 (Unix) PHP/5.2.3 DAV/2 PHP Version: 5.2.3 この辺りどうしても戸惑ってしまう場所だと思いますが、頑張って下さい。
その他の回答 (2)
- memphis
- ベストアンサー率40% (975/2395)
textareaでくくった間にソースを見やすくするためにTABを入れていてませんか?
お礼
おっしゃるとおり、コーディングを見易くする為に<tab>を入れておりました。これが問題だったのですね。 以後気をつけます。 無事解決しました。ありがとうございました。
- Wabisuke_S
- ベストアンサー率55% (5/9)
実際試していないので不確かですが、改行がタブに変換されているのではないでしょうか。 --------------------------------------------------------- メモ<textarea name="MEMO" cols="60" rows="5" wrap="hard"> <?php echo "$MEMO"; ?> </textarea> --------------------------------------------------------- の部分を、一行にしてみてはどうでしょう。 --------------------------------------------------------- メモ<textarea name="MEMO" cols="60" rows="5" wrap="hard"><?php echo "$MEMO";?></textarea> ---------------------------------------------------------
お礼
回答ありがとうございます。 確かに、コーディングを見易くする為に<tab>を入れておりました。 これが問題だったのですね。
お礼
おっしゃるとおり、コーディングを見易くする為に<tab>を入れておりました。丁寧な回答に超感謝です。^_^ ありがとうございました。 機会があればまたよろしくお願いいたします。