2010-04-24 3 views
3

Мне нужно сохранить символы табуляции из текстового поля через POST-данные. Кажется, что нет возможности дифференцировать вкладки из пробелов в массиве $ _POST, и это действительно расстраивает меня.Сохранение вкладок в POST-данных

Я использую плагин jQuery здесь, чтобы использовать вкладку и перемещать + вкладку в текстовом поле. http://teddevito.com/demos/textarea.html

Плагин JQuery использует это в качестве символа табуляции:

$.fn.tabby.defaults = {tabString : String.fromCharCode(9)}; 

По некоторым причинам, он показывает индивидуальное пространство вместо каждого символа табуляции, поэтому все мое форматирование кода теряется:

<textarea name="field0" rows="26" cols="123"><?php 
    echo $_POST['field0']; 
?></textarea> 

Это также не работает. Видимо вкладки исчезают до того, как данные достигает даже функцию str_replace (первые двойные кавычки являются результатом, когда я нажимаю TAB в моем текстовом редакторе):

<textarea name="field0" rows="26" cols="123"><?php 
    echo str_replace(" ", "\t", $_POST['field0']); 
?></textarea> 

Причину мне нужны вкладки и не несколько пространств, потому что мои приложение включает он-лайн редактор кода.

У кого-нибудь есть идеи? Я предполагаю, что это решение будет связано с изменением данных с помощью javascript перед отправкой через POST, но я не имею ни малейшего понятия, как начать.

+1

Так что, если вкладки вызывают проблему, почему бы не преобразовать пробелы в вкладки прямо перед обработкой кода и как можно скорее их вернуть? – Wolph

ответ

3

Ну это немного похоже на убийство муравья с базуки, но вы можете использовать кодировку base64, прежде чем POST данные:

http://plugins.jquery.com/project/base64

и декодировать его:

http://www.php.net/manual/en/function.base64-decode.php

Он должен работать очень хорошо, но это увеличивает размер вашего запроса.

+0

или вы можете просто заменить «\ t» на «\\ t» с помощью jQuery перед POST и заменить обратно на PHP – Cesar

Смежные вопросы