2017-09-26 71 views
0

我想在用戶提交表單時在我的服務器上創建一個.txt文件。但是,註釋textarea中的任何換行符都不會反映在生成的.txt文件中。Php不寫從javascript寫新行textarea

這裏是我的代碼:

的Javascript

function sendInfo(){ 
var name = document.getElementById("scenarioName").value; 
var author = document.getElementById("author").value; 
var email = document.getElementById("email").value; 
var comments = document.getElementById("comments").value; 

var urlString = "get_info.php?name="+name+"&author="+author+"&email="+email+"&comments="+comments;  

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (this.readyState==4 && this.status==200) 
    { 
    document.getElementById("successParagraph").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET",urlString,true); 
xmlhttp.send();} 

PHP

$content = $_GET['name']."\r\n".$_GET['author']."\r\n".$_GET['email']."\r\n".$_GET['comments']; 
if(isset($_GET['name'])){ 
    $fp = fopen("files/".$_GET['name'].".txt","wb"); 
    fwrite($fp,$content); 
    fclose($fp); 
} 

因此,如果評論是:

「FOO

欄」

然後在文本文件,這將是單行線,讀「foobar的」

+0

請勿使用獲取此類信息。使用後,它將工作 –

+0

將JavaScript更改爲xmlhttp.open(「POST」,urlString,true);和PHP $ _GET的$ _REQUEST,但這並沒有改變它。這是你的意思嗎? –

回答

0

好吧,我不知道爲什麼或者怎麼樣,但是我已經工作了一個解決這個。 這個問題似乎是php文件寫入內容的方式,它似乎忽略了換行符。 所以我用換行符分割註釋,並使用foreach循環將每行寫入文件。因爲如此:

$content = $_POST['name']."\r\n".$_POST['author']."\r\n".$_POST['email']."\r\n"; 

$comments = split("\n",$_POST['comments']); 

if(isset($_POST['name'])){ 
$fp = fopen("fine-uploader/files/".$_POST['name'].".txt","wb"); 
fwrite($fp,$content); 
foreach($comments as $c){ 
    fwrite($fp,$c); 
    fwrite($fp,"\r\n"); 
} 
fclose($fp); 
}