2013-12-08 2 views
0

Я пытаюсь опубликовать текстовую область, которую я храню в своей базе данных, и хочу сохранить все пустое пространство, чтобы я мог запросить его и отобразить в другом месте. Проблема здесь в том, что когда эта форма отправляется, вся текстовая область отправляется как одна строка. Я просмотрел htmlspecialchar и urlencode, но как это можно применить здесь, если это даже подходящее место для их использования?Как сохранить пробелы и форматирование в сообщении формы textarea?

<form name = "exam" action="takeTest.php" method="post"> 
    <textarea name="pa1" required rows=10 cols=55>public int add(int a, int b){ 






    } 
    </textarea> 
    <input type="submit"> 
</form> 

EDIT

Пытался предварительно теги, но те, которые только показывают, как текст по умолчанию в дополнение к коду. Я думаю, что добавление тегов \ n испортит код, когда он будет протестирован через модульное тестирование, но я собираюсь попробовать его.

Эта часть моей формы является частью программирования, которая пытается подражать тому, что делает кодирующий бат.

+1

Каждая строка будет отделено от '\ n', если это то, что вы имеете в виду? –

+0

Это действительно взято из моего php-кода, и все это на самом деле после $ pageContent. = 'Где я эхо $ pageContent позже – Garvin

+0

Спасибо за ссылку mario! Попытка обернуть в

 теги –
                        
                            
    Garvin
                                
                            
                        
                    

ответ

2

Как @Danny сказал, строки разделены, но не с разрывами HTML-строк, как вы могли ожидать.

Чтобы превратить символы новой строки (\n) в разрывы строк HTML (<br>), просто используйте nl2br; поэтому вы можете использовать свою строку из базы данных в надлежащем HTML.

Он преобразует:

Hey\nthere 

в:

Hey<br>there 

, которые браузеры делают как:

Hey 
there 
+0

Я боюсь, что это может испортиться с модульным тестированием, так как я собираюсь запустить ввод после его компиляции, но я дам ему выстрел – Garvin

+0

Вот как он предназначен для использования. Если вам нужно визуализировать HTML, используйте эту функцию, если вам нужно что-то еще, сделайте свой собственный (возможно, используя простое замену строки), но нижняя линия - это то, что строки есть, и вам не нужно об этом беспокоиться. – Shomz

+0

Просто прочтите ваше обновление: не нужно помещать теги \ n, как вы сказали. Они там автоматически. Я говорю, что если вы хотите вывести это в HTML, просто используйте 'echo nl2br ($ your_text_var);'. – Shomz

0

Перед вставкой в ​​БД, PHP имеет функцию nl2br(). затем, если вы вторят данные на теле просто напечатать еще для редактирования этого снова в текстовое поле используйте этот

function br2nl($string) 
{ 
    return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string); 
} 
Смежные вопросы