#php #javascript #jquery #scriptaculous #inplace-editing
#php #javascript #jquery #scriptaculous #inplace-редактирование
Вопрос:
У меня есть страница с различными текстовыми полями, которые можно редактировать с помощью Scriptaculous (есть ли вариант получше?):
<h4>
<span id="someID">
<?php echo $_SESSION['someID']; ?>
</span>
</h4>
PHP файл выглядит следующим образом:
<?php
if(!isset($_SESSION['someID']))
$_SESSION['someID'] = "Some text which spans more than <br />one line of a textarea";
?>
Когда я нажимаю на элемент и он становится текстовой областью, разрывы строк присутствуют. Однако, когда текстовая область теряет фокус и возвращается к тому, каким элементом она была, разрывы строк теряются.
Есть ли способ сохранить разрывы строк? Должен ли я как-то использовать n
вместо <br />
?
Ответ №1:
Точно так же тег <textarea>
строки разрыва <br/>
обрабатывается как текст.
Если вы измените его на rn
, это будет работать.
Почему дополнительный r
? Например, в Windows / IE / etc простого n
недостаточно. 😉
Комментарии:
1. К сожалению, это не совсем так просто. Содержимое PHP-файла изначально отображается в виде текста (так необходимо
<br />
) — только при нажатии на элемент он превращается в текстовую область.2. Почему? Во время события click вы изменяете это
<p>
на<textarea>
. Замените текст и здесь, и это сработает.3. Я действительно не понимаю этого, извините. Событие click уже привязано к Scriptaculous. Вы хотите сказать, что я должен делать что-то вроде:
$('#someID').live('click', function() {var content = $(this).html(); content = content.replace("<br />", "rn") });