제목이 엉망 진창
대충 이론은 이렇다.
Ajax를 통해 PHP로 textarea의 값을 전송하려고 하면 textarea 내의 개행문자가 문제가 된다. 따라서 이것을 처리하기 위해 다음과 같은 순서로 처리한다.

1. Textarea에 있는 Value을 구한다.
2. 그 value에서 개행 문자를 <br>태그로 변환시켜준다.
3. 전송한다.

물론 반대로 가져올땐 반대로 해주면 된다.

첫번째로 출처 불명인 replaceAll 이라는 함수. javascript에서 String 객체는 replace 라는 함수는 존재하는데 replaceAll은 없다고 한다.

String.prototype.replaceAll = function( searchStr, replaceStr )
{
	var temp = this;
	while( temp.indexOf( searchStr ) != -1 )
	{
		temp = temp.replace( searchStr, replaceStr );
	}
	return temp;
}

String 객체에 함수를 추가해주자.

그 다음 직접 코딩했던 예제. 정신 없는 코딩이니 3,4 번째 줄과 10,11,12 번째 줄만 보면 된다.

function tbox_submit(p_id)
{
	str = document.getElementById("tbox_" + p_id).value;
	str = str.replaceAll("\r\n", "<br>");
	new Ajax.Updater('t_'+p_id, '__text.php', {method: 'post', parameters: {qt_no: p_id, str: str}, asynchronous:true, evalScripts:true});
	new Ajax.Updater('cmd', '~~~.php', {method: 'post', parameters: 
                         {ex_no: <?=$exam[ex_no]?>, qt_no: p_id, str: str}, asynchronous:true, evalScripts:true});
}
function tbox_open(p_id)
{
	str = document.getElementById("tspan_" + p_id).innerHTML;
	str = str.replaceAll("<BR>","\r\n");
	str = str.replaceAll("<br>","\r\n");
	document.getElementById("t_" + p_id).innerHTML = 
        "<textarea id='tbox_" + p_id + "' rows=5 style='margin-left:5px;width:100%;display:;'>"+str+"</TEXTAREA>"; 
        document.getElementById("t_" + p_id).innerHTML += "<FONT color=red>[확인]버튼을 눌러야 정답이 수정됩니다</FONT>
        <INPUT onclick='tbox_submit("+p_id+")' type=button value=" 확인 ">";
        //....이하 코딩...
}
0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You May Also Like

[FLEX] PopUp 띄우기

출처 : Flext Popup 띄우기 http://lagrima.tistory.com/ ================================================================== <mx:Script> <![CDATA[ import mx.core.IFlexDisplayObject; import mx.managers.PopUpManager; private function login():void { var…
Read More

nVidia Deep Learning Institute 참가 후기

외부 진료 자문 일정에 잠깐 여유 시간이 되어 참가해본 nVidia Deep Learning Institue (http://www.nvidia.com/content/apac/event/kr/nvidia-deep-learning-institute-march/) (사진 출처 : http://biztribune.co.kr/n_news/news/view.html?no=17005)…