2013-05-29 2 views
1

정말 간단한 html/php 코드가 있습니다. 텍스트 영역과 보내기 버튼 만 있습니다.HTML 게시로 줄 바꿈이 제거됩니다.

텍스트 영역에는 텍스트 시작 부분에 3 줄의 새 줄이 있습니다. 줄 바꿈이 필요해.

양식을 제출할 때, 어떤 이유로 텍스트 시작 부분에 줄 바꿈이 1입니다. 그리고 내가 다시 보내면 다시 시작하고, 줄 바꿈을 제거하고, 내용의 시작 부분은 텍스트가 아닙니다.

왜 그런가? FF, Chrome, Safari, Oprea, IE와 같은 결과를 보았습니다.

이 코드를 테스트 할 수

<?php 
if (empty($_POST["operation"])) { 
    //Init the textarea value if form not submitted 
    $_POST["message"] = "\r\n\r\n\r\nThis is\r\na multiline text"; 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Multiline test</title> 
    <meta charset="UTF-8" /> 
</head> 
<body> 
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> 
    <textarea style="width: 200px; height: 150px;" name="message"><?php echo $_POST["message"]; ?></textarea> 
    <input type="submit" value="send" /> 
    <input type="hidden" name="operation" value="send" /> 
    </form> 
</body> 

+0

가능한 경우 CSS를 사용하여 메시지의 위치를 ​​지정해야합니다. 아마 너무 쉬울 것입니다. – suspectus

+0

개행 문자 앞에있는 첫 번째 문자가 f.e 일 때 발생하지 않습니다. 우주. 왜 이런 일이 일어나는지 잘 모르겠다. 그리고 빠른 시일 내에 HTML 사양에 대한 정보를 찾을 수 없다. 텍스트 영역을 다음 행의 시작 부분에 채우는 PHP echo 문을 작성하여이를 방지 할 수 있습니다. – CBroe

+0

css는 옵션이 아닙니다. 이것은 메시지에 회신하려는 모듈입니다. 따옴표로 묶인 메시지를 구분하기 위해 3 줄의 새 줄을 추가하고 싶습니다. – vaso123

답변

2

브라우저는 <textarea> 태그 내부의 첫 번째와 마지막 줄 바꿈을 무시합니다. 이것은 당신이 여분의 줄을 싶지 않을 경우이 같은 HTML을 작성하는 경우 나누기 때문이다

<textarea> 
Textarea content, all in one line. 
</textarea> 

이 경우 간단한 해결책은 단지 텍스트 영역의 내용을 인쇄하기 전에 하나의 줄 바꿈을 추가하는 것입니다.

<textarea style="width: 200px; height: 150px;" name="message"> 
<?php echo $_POST["message"]; ?> 
</textarea> 

또한 \r\n이 필요하지 않습니다. 그냥 \n이면 충분합니다.

관련 문제