Автоматическое добавление содержимого в textarea

AGENT131313

Забанен
Регистрация
17 Мар 2009
Сообщения
292
Реакции
31
Доброго времени суток!
Необходима ваша помошь))
В общем есть окно textarea так же есть всплывающее меню.
Необходимо следующее: в поле ввода добавляем сылку, и нужно чтобы она после отправки уже уходило в таком виде
Код:
[img]url[/img]
В общем как в dle допустим вставка изображений

Это поле находится в всплывающем окне. Необхходимо добавить сылку в него, потом кнопку добавить и оно появляется уже в textare в виде что выше привел
 
PHP:
<?php
if(isset($_POST['text'])) {
  if(!empty($_POST['text'])) {
  echo "[img]".htmlentities($_POST['text'])."[/img]";
  }
}
?>
<form action="<?=$_SERVER['SCRIPT_NAME'];?>" method="POST">
<input type="textarea" name="text">
<input type="submit" value="Отправить">
</form>
 
php 5.4.0 Значение по умолчанию для параметра encoding было изменено на UTF-8.
Если планируется использовать php версии до 5.4, для некоторых ещё актуально, наличие кодировки обязательно. Т.к. на Для просмотра ссылки Войди или Зарегистрируйся может получиться ерунда.
PHP:
<?php
if(isset($_POST['text'])) {
  if(!empty($_POST['text'])) {
  echo "[img]". htmlentities($_POST['text'], ENT_NOQUOTES, "UTF-8")."[/img]";
  }
}
?>
<form action="<?=$_SERVER['SCRIPT_NAME'];?>" method="POST">
<input type="textarea" name="text">
<input type="submit" value="Отправить">
</form>

При сохранении в базу данных не забываем, проделать
Для просмотра ссылки Войди или Зарегистрируйся (либо следовать предупреждению в документации)
И
PHP:
htmlentities($_POST['text'], ENT_NOQUOTES, "UTF-8")

Естественно если кодировка другая, то нужно изменить на свою.
 
В общем я сделал немного по другому, канешно так меньше удобнее но нормально все работает. сделал кнопку
Код:
<a href="javascript:void(0);" onclick="insertTag('message','[img]','[/img]');"><img title="Картинка" src="/images/image.png" width="23" height="25" border="0" alt="" /></a>
и вот такой скрипт:
Код:
<script>
function insertTag(_obj_name, _tag_start, _tag_end)
{
var area=document.getElementsByName(_obj_name).item(0);
if (document.getSelection)
{
area.value=area.value.substring(0,area.selectionStart)+
_tag_start+
area.value.substring(area.selectionStart, area.selectionEnd)+
_tag_end+
area.value.substring(area.selectionEnd,area.value.length);
}
else
{ var selectedText=document.selection.createRange().text;
  if (selectedText!='')
  { var newText=_tag_start+selectedText+_tag_end;
  document.selection.createRange().text=newText;
}
}
}
</script>
Таким образов у меня появляется в форме так6
Код:
[img][/img]

Подскажите как сделать чтобы в IE работало?

Пришлось переделать. Вот так сделал
Код:
 <script language="javascript" type="text/javascript">
function tag_add(obj, str1, str2) { 
if(document.selection) { // Для IE 
var s = document.selection.createRange(); 
if (s.text) { 
s.text = str1 + s.text + str2 
} else { 
obj.value = obj.value + str1 + str2 
} 
} 
else if (typeof(obj.selectionStart) == "number") { // Opera, FireFox, Chrome 
if (obj.selectionStart != obj.selectionEnd) { 
var start = obj.selectionStart; 
var end = obj.selectionEnd; 
s = obj.value.substr(start,end-start); 
obj.value = obj.value.substr(0, start) + str1 + s + str2 + obj.value.substr(end) 
} else { 
obj.value = obj.value + str1 + str2 
} 
} 
}
</script>
Код:
<a href="#" onClick = "javascript:tag_add(message, '[img]','[/img]');"><img title="Вставить Картинку" src="/images/image.png" width="23" height="25" border="0" alt="" /></a>
 
Если оставить message без кавычек – Опера вернёт "Uncaught exception: ReferenceError: Undefined variable: message".
Но кавычки дело не меняют: в Опере код не срабатывает.
А для осла достаточно и document.selection.createRange().text = ...

У меня в 4-х браузерах alert (typeof(obj.selectionStart)); выдаёт 'undefined'.
при textarea внутри формы и таблицы.
 
Если оставить message без кавычек – Опера вернёт "Uncaught exception: ReferenceError: Undefined variable: message".
Но кавычки дело не меняют: в Опере код не срабатывает.
А для осла достаточно и document.selection.createRange().text = ...

У меня в 4-х браузерах alert (typeof(obj.selectionStart)); выдаёт 'undefined'.
при textarea внутри формы и таблицы.

я был соединил два скрипта для корректной работы. Иначе он у меня работал в ИЕ тогда нигде больше и наоборот.
 
Для просмотра ссылки Войди или Зарегистрируйся нашёл кроссбраузерное решение.
obj.focus(); не рекомендую добавлять: у меня из-за него в Опере скрипт перестаёт отрабатывать.
 
Назад
Сверху