2016-04-11 44 views
0

好吧,所以这是我的问题。PHP - GET url忽略linelines

我有 “page1.php中”,用下面的代码:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
    </head> 
<body> 

<textarea id="note-textarea"></textarea> 

<script> 
    $("#note-textarea").keyup(function() { 
      $("#output_div").html($(this).val()); 


    setTimeout(function() { 
      var xmlhttp; 
      if(window.XMLHttpRequest){ 
       xmlhttp = new XMLHttpRequest(); 
      }else{ 
       xmlhttp = new ActiveXObject("XMLHTTP"); 
      } 


      xmlhttp.open("GET", "/upload-note?note="+$('#note-textarea').val(), true); 
      xmlhttp.send(null); 
     }, 1000); 

    }); 
</script> 

</body> 
</html> 

和 “上传-note.php”,这应该上传textarea的内容来自 “page1.php中”,到MySQL数据库。为了演示目的,我们只是说,它将会改变文本字段的内容。

<?php 
    echo($_GET['note']); 
?> 

现在这个设置工作实际上很好,但它忽略了linebreaks。有关如何处理这些问题的任何建议?

+0

你为什么不使用'$ .ajax'后置请求呢?这是很容易,也不要发送一个完整的textarea在你的网址.. – Jer

回答

1

浏览器忽略HTML文档中的换行符(\n)。你有<br>标签改变它们像这样..

echo nl2br($_GET['note']); 

更改为POST而不是GET

xmlhttp.open("POST", "/upload-note", true); 
xmlhttp.send("note="+$('#note-textarea').val()); 

...

echo nl2br($_POST['note']); 
+0

嗯,谢谢你的建议,但它似乎并没有工作。网址如下所示:/ upload-note?note = This%20is%20a%20testlinebreak,以及“test”和“linebreak”之间,应该有一个换行符。 – user3276657

+0

使用GET将忽略换行符。你需要使用POST。 –

+0

@ user3276657 - 查看我的编辑。如果这有帮助,请点击复选标记:) –