2011-07-11 2 views
1

HTMLの表示に問題があります。ハハ、説明しましょう。データベースからHTMLへのJavascriptによるNL2BRの処理

私は「コメント」のための1つのテンプレートファイルを持っています...そして、それはどこに行くべきか、そしてそのようなことをHTMLで言います。更新と「コメント」

IEのいずれかを選択、追加時:

<div class='comment'> 
    <div>{$name}</div> 
    <div>{$comment}</div> 
</div> 

だから私のコメントの中に、私は、\ nは

ので

私は行く、含まれるデータベースからのコメントをプルする必要がありますこのような。

$comment = nl2br($comment); 
<div class='comment'> 
    <div>{$name}</div> 
    <div>{$comment}</div> 
</div> 

そして、これが作業を行います...しかし、私は、私が使用してjQueryの経由UPDATEを行う際に、

$("#"+ target +"").replaceWith(responseText); 

そして、responseTextがすべてのHTML ...しかし、何らかの理由、それはまだ含めています\ n ...ありません

これはJavascriptでの制限、またはレンダリングの問題であるかどうかわかりません。他にどこに行くのか分からない...どんな考え?バックデータをエコーする前に、あなたは以下を実行してみてくださいjQueryのを使用して、コメントを得ているPHPファイルで

+0

あなたはajaxリクエストを行っているのですか? – Rafay

+0

はい、それは正しいです – Justin

答えて

0

まあ、これは奇妙な少しだった、私は完全にテストしていないいくつかの問題がありましたおそらく明確にしないと申し訳ありません。しかし、mysql_real_escape_string()はデータベースに格納されている\ nの問題を引き起こしていました。

私はこの機能を代わりに使用しています。 php.netのウェブサイトに掲載されています

function mysql_escape_mimic($value) { 
     if(isset($value)) 
     { 
      if(is_array($value)) { 
       return array_map(__METHOD__, $value); 
      } 

      if(!empty($value) && is_string($value)) { 
       //return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), 
       //     array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $value); 

       return str_replace(array('\\', "\0", "\r", "'", '"', "\x1a"), 
            array('\\\\', '\\0', '\\r', "\\'", '\\"', '\\Z'), $value); 
      } 

      return $value; 
     } 
    } 
0

$comment=str_replace('\n\r', '<br />', $comment); 
$comment=str_replace('\n', '<br />', $comment); 
echo $comment; 
+0

うん、それは動作します。しかし、私はJavascriptから応答を受け取ったときに動作していないようです。 – Justin