2010-04-06 63 views
0

我不明白爲什麼我的AJAX腳本會忽略所有折線。我首先鍵入文本到textarea然後點擊發送按鈕。這裏是我的AJAX實現:PHP:Ajax忽略文本中的折線

// creating ajax object 
// ==================== 

function createRequestObject(){ 
try { return new XMLHttpRequest() } 
catch(e) 
{ 
try { return new ActiveXObject('Msxml2.XMLHTTP') } 
catch(e) 
{ 
try { return new ActiveXObject('Microsoft.XMLHTTP') } 
catch(e) { return null; } 
} 
} 
} 

// message options (save, cancel) 
// ============================== 

function form1(text){ 
var http = createRequestObject(); 
if(http){ 
http.open("GET", "my_script.php?text=" + text); 
http.onreadystatechange = function(){ 
if(http.readyState == 4){ 
alert("Ok!"); 
} 
} 
http.send(null); 
} else { 
document.location = "my_script.php?text=" + text; 
} 
} 

HTML表單

<p align="justify" style="margin-right:10; margin-left:10;"> 

<table style="margin-right:10; margin-left:10;" align="center" border="0" cellpadding="0" cellspacing="0" width="680"> 
<TBODY> 
<form name="fgform"> 
<tr> 
<td width="680" height="100" colspan="2"><p><textarea id="edit_text1" name="edit_text" rows="3" style="width: 680; height: 100;"></textarea></p></td> 
</tr> 

<tr> 
<td width="340"><p><input type="button" id="saveB" value="Save Text" style="color:rgb(0,204,0); background-color:white; border-width:1; border-color:rgb(225,218,202); border-style:solid; width:100;" onclick="form1(document.getElementById('edit_text1').value);"></p></td> 
<td width="340"><p align="right">&nbsp;</p></td> 
</tr> 
</form> 
</TBODY> 
</table> 
+0

任何其他解決這一建議的問題? – ilnur777 2010-04-06 15:57:40

回答

0

之前在HTML顯示它

你也應該用對待由my_script.php你的文本輸出與nl2br()函數用於在url中發送數據的退出功能,如下所示:

document.location = "my_script.php?text=" + escape(text);

-2

夥計們,我自己找到了答案! :-)

這是一個特殊的功能,用特殊字符替換所有行摺疊。

// multiply replacing function 
// =========================== 

function repl(text,replaceData1,replaceData2){ 
if(text.indexOf(replaceData1)==-1){ 
return text; 
} 
return text.split(replaceData1).join(replaceData2); 

然後,發送同時點擊與onclick事件發送按鈕,使用上面的函數像這樣my_script.php之前替換textarea的所有行的摺疊:

onclick="form1(repl(document.getElementById('edit_text1').value,'\r\n','|'));