2011-02-04 4 views
0

MySqlデータベース(VARCHAR 255)に保存された複数行のテキストがあります。私はそれをロードし、標準のPHP関数 "nl2br"を使用して処理すると、それは細かい(複数行)をエコーし​​ます。しかし、私はデータベースから複数行のテキストを読み込んで、それを "nl2br"にしてからjavascriptに送ります(テキストエリアに表示されます)ので、表示されません!どうしましたか?データベースからTextAreaへの複数行テキストのロード

echo "<SCRIPT>FillElements('".$subject."','".$text."');</SCRIPT>"; 

P.S. FillElements機能:

function FillElements(Sub,Txt) 
     { 
      document.getElementById('txtSubject').value=Sub; 
      document.getElementById('txtMessage').value=Txt; 
     } 
+0

どのようにJavaScriptに送信しますか? –

+0

シンプルなこのように:echo "";その前に$ textはnl2br-edです。 – guest86

+0

テキストが複数行でない場合に動作します。そうでなければ動作しません。 – guest86

答えて

0

textarea sが実際に入力要素と同様にvalueのような属性の内容を保存しません。彼らは実際に内容を<textarea></textarea>タグの間に格納します。コンテンツが実際に文書内のCDATAとして扱われることを意味します。

<textarea> 
    This is my Content 
</textarea> 

"これは私のコンテンツです"という内容のコンテンツを生成します。

これは、テキストエリアの内容を変更するコードを使用できないことを意味します。テキストエリアのinnerHTMLプロパティを変更する必要があります。ページの作成時にPHPを使用してフィールドを移入しているので、なぜ単にHTMLマークアップのデータを記入していない、余談として

http://jsfiddle.net/wFZWQ/


:私はここに簡単な例を設定しています、これはそれを行うには長い道のりのように思えます。

また、あなたはそれを使用しているようには見えないので、[jQuery] [1]は物事を抽象化していますので、要素を取得するのにdocument.getElementById("the_id")と入力する代わりに、CSSセレクタを使用して$("#the_id")を使用して同じ要素を取得します。あなたはまた、javascript mucxhを書くのを簡単にする有用な機能が満載です。

[1]:http://jquery.com jQuery

+0

うまく動作する:http://jsfiddle.net/P7zqw/ –

0

改行タグ(<br />は)<textarea>で実際の改行が発生することはありません。

あなたの<textarea>に「本当の」改行(\n)を渡すことができます。

私はa fiddleを作成しました。


EDIT:更新FillElementsコードの場合

<script>FillElements("foo","foo 
bar 
baz");<script> 

正しい:

$subject = "String\nWith\nMultiple\nLines"; 

printf('<script type="text/javascript">FillElements(%s)</script>', 
    json_encode($subject) 
); 
+0

ありがとうございますが、たとえ私がnlをbr(nl2brメソッド)に変更しなくても、それは動作しません。:\ – guest86

+0

'FillElements'は実際にテキストエリアを埋めるのですか? –

+0

@guest FillElements関数のソースコードを掲載します。 –

0

私の推測では、あなたのHTMLソースコードは次のように見えることでしょうか?

JavaScriptでは、文字列は複数行にまたがることはできません...

+0

いいえ、それはそうではありませんが、2番目のパラメータは複数行に配置されたデータベースから取得されます。だから、私はどのように私のテキストエリアにデータベースから複数行のテキストを表示できますか?ウェブプログラミングを手に入れよう! :\ – guest86

+0

@guestどのようにそれはそのように見えるのですか?投稿する –

+0

ちょうどこのように:echo ""; (それはすべて1行に入っています)。 $ textはデータベースから読み込まれます(標準PHPデータベースメソッド)。基本的には、ユーザがテキストエリアに何かを入力すると、PHPはそのテキストをデータベースに保存し、後でそのテキストをテキストエリアに読み込もうとすると、改行が含まれていればそれを返しません。 – guest86

関連する問題