在ajax捕获php echo之后,将\ n添加到输出

时间:2013-01-14 23:20:20

标签: php html ajax jquery

我有一个非常简单的问题。当ajax捕获来自php女巫的回声时,看起来像这样:

<h2> Hello world </h2>
 <p>Simple text</p>

ajax将\ n添加到其中,因此HTML页面中的out看起来像这样:

  

你好世界   \ n \ n
  简单的文字   \ n

重装后它(\ n)消失了。它不是PHP的错,因为当我在echo之前寻找\ n字符时,它不会替换任何东西,所以它必须通过ajax处理。难道你不知道如何在没有重新加载页面的情况下摆脱\ n输出?

修改 ajax:......我说得很简单......

$('#send').click(function(){
  var obsah = CKEDITOR.instances['content'].getData();
  var id = adr();
  $.ajax({
    data:{'content': content, 'id':id},
    success: function(data){
          $('#removeable').append(data);           
       },
    error: function(){
        alert('Error')    
      }
    });
  });

php:

if(!empty($_POST['content'])){
    $prispevek = mysql_real_escape_string($_POST['content']);
            $id = $_POST['id'];
            $sql = "UPDATE navigation SET `content` = CONCAT_WS('',`content`,'$prispevek') WHERE `ID` = '$id'";
    mysql_query($sql) or die (mysql_error());
    //$prispevek = str_replace("\n", "", $prispevek);
    echo $prispevek;
}

2 个答案:

答案 0 :(得分:0)

问题在于元素之间的\n(换行符)是由textarea引起的。因此,使用jQuery可以轻松修复添加行:

obsah = obsah.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, ' ');

答案 1 :(得分:0)

您是否尝试过使用 nl2br php函数? (http://php.net/manual/en/function.nl2br.php

我认为这应该对您有帮助。

echo nl2br($prispevek);

还有一件事。我建议您在打印PHP响应后添加退出; die();

赞:

echo nl2br($prispevek);
exit;

为什么要这么做?阅读:https://stackoverflow.com/questions/2909475/will-php-code-exit-after-echo-for-ajax