2013-01-05 3 views
0

HTTPRequest 속성을 사용하여 텍스트 영역에 개행을 인쇄하고 싶습니다.HTTPRequest를 사용하여 텍스트 영역에 개행 문자를 인쇄하는 방법은 무엇입니까?

다음
<script> 
function htrt(str) 
{ 
    var xmlhttp; 
    //document.getElementById("txtwrite").innerHTML = str; 
    if (window.XMLHttpRequest) { 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { 
      document.getElementById("txtwrite").value = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","lecture.php?techtxt=" + str); 
    xmlhttp.send(); 
} 
</script> 


<textarea rows="9000" cols="9000" style="height: 200px; width: 725px;" id="txtwrite" readonly="readonly"></textarea>  

<textarea cols="9000" rows="9000" name="txtname" style="height: 200px; width: 725px;" onkeyup="htrt(this.value)"></textarea> 

이 lecture.php 코드 :

<?php 
$str=$_GET['techtxt']; 
     echo $str; 
?> 

그것은 텍스트 영역에서 줄 바꿈 인쇄되지 않습니다 다음은 내 코드입니다. 텍스트 영역에서 무슨 일이 일어나는지 확인하기 위해 nl2br ($ string) 함수를 사용했지만 작동하지 않습니다. 제발 도와주세요.

+0

nl2br 대신 json_encode를 시도합니다. JS 데이터를 전송하므로 JS로 인코딩해야합니다. jQuery, mootools 또는 prototype –

답변

0

텍스트 영역 대신 사업부를 사용하십시오

는하지만이 설정을 변경해야합니다. textarea 태그에서 작동하는 html 태그가 없기 때문에 div에서 작동합니다.

이 함수 nl2br()은 새 줄을 br 태그로 변환합니다. 그냥이 기능을 잘 알고 nl2br().

+0

감사합니다. Shahriar. 제공된 링크는 매우 유용합니다. –

0

echo를 다시 사용하기 전에 PHP의 htmlspecialchars 함수를 사용하면 다른 텍스트 영역에서 새 줄을 사용하여 문제를 해결할 수 있습니다.

인코딩 된 문자열을 가진 jsfiddle 시험 : http://jsfiddle.net/gartz/5mEEQ/

이 :

<a href='te 
st'>Test</a> 

윌이되었다 :

&lt;a href=&#039;te&NewLine;st&#039;&gt;Test&lt;/a&gt 

을 그리고 텍스트 영역 태그 사이는 마치 마법처럼 작동합니다. 이 속으로

document.getElementById("txtwrite").value = xmlhttp.responseText; 

:

document.getElementById("txtwrite").html = xmlhttp.responseText; 
+0

과 같은 JS 프레임 워크 사용은 textarea에서는 작동하지 않지만 HTML에서는 작동합니다. –

+0

@NirobHasan 내 jsfiddle 보였습니까?!? 이 예제에서는 textarea를 사용하고 있습니다. 'html' 속성을 사용해야 할 때'value'를 사용하기 때문입니다. –

+0

예 jsfiddle보세요. htmlspecials ($ string) 함수가있는 페이지에서 작동하지만 AJAX를 사용하여 responseText를 사용하면 페이지를 요청한 루트 페이지에서 작동하지 않습니다. –

관련 문제