프로그래밍/JavaScript
textarea에 포함된 줄바꿈(엔터) 저장하고 출력, 수정하는 방법
승민아
2024. 11. 3. 21:11
textarea 태그에 입력된 엔터(줄바꿈)을 서버에서 저장하고 화면에 뿌려주는 방법
<textarea type="text" id="comment"></textarea>
textarea 태그에 작성한 내용에 엔터(줄바꿈)이 포함되어 있다면 어떻게 서버에 저장하고
필요할때 화면에 엔터(줄바꿈)를 포함해서 뿌려줄 수 있을까?
먼저 서버에 사용자가 textarea에 작성한 내용을 전송해보자.
const content = $("#comment").val();
$.ajax("url", {
type: "POST",
contentType: "application/json",
data: JSON.stringify({
content: content
})
})
우선 서버에 ajax로 textarea의 내용을 POST 요청으로 전송하는 코드의 일부이다.
엔터를 포함한 위의 내용으로 서버에 전송을 해보자.
엔
터
로 전송되어 온다.
이 내용을 데이터베이스에 줄바꿈을 변환하여 저장하고 출력하려고 다음과 같은 방법을 생각해냈다.
줄바꿈 문자 '\n'를 "<br>"로 변환하여 저장하는 코드를 Service Layer에 추가 작성해주자.
데이버베이스에서는 줄바꿈을 <br>로 저장하는것이다.
const content = $("<div class='comment-content'></div>")
.html(comment.content);
웹 페이지에 출력을 할때는 다음과 같이 html 형식 그대로 출력한다면 줄바꿈이 적용된 내용을 출력할 수 있다.
수정 기능을 구현할때 textarea에 줄바꿈(엔터)를 포함하여 출력하고싶다면
const commentForm = $('<textarea id="comment-update-form"></textarea>')
.text(content.html().replaceAll("<br>", "\n"));
위와 같이 textarea에 html 내용을 그대로 가져오는데 <br>을 줄바꿈 문자 "\n"으로 replace하여 출력하면 된다.