|
|
|
| Как сделать так что при выделении текста и затем при нажатии на кнопку теги не просто вставлялись после текста а по бокам (например Проба а не Проба[b][/b]) Как доделать скрипт?
Вот мой код:
<FORM METHOD=POST NAME="q" id="q" ACTION=
<?
$query="SELECT * FROM news WHERE id_news=".addslashes($_GET['id_news'])."";
$result=mysql_query($query) or die("Неправильный запрос : " . mysql_error());
$row = mysql_fetch_object ($result);
echo "index.php?page=add_comment&id_news=".$row->id_news."";
?>
>
<TABLE width="97%" border="1" cellpadding="0" cellspacing="0">
<TR>
<TD>
<H3>Оставить комментарий</H3>
</TD>
<TD>
<input type="button" value="B" onclick="document.q.comment.value+='<B></B>'">
<input type="button" value="i" onclick="document.q.comment.value+='<I></I>'">
<input type="button" value="u" onclick="document.q.comment.value+='<U></U>'">
</TD>
</TR>
<TR>
<TD>Комментарий</TD>
<TD align="center">
<TEXTAREA ROWS="5" COLS="30" NAME="comment" VALUE="" id="comment"></TEXTAREA>
</TD>
</TR>
<TR>
<TD colspan="2"><p align="center"><INPUT TYPE="submit" VALUE="Добавить комментарий"></TD>
</TR>
</TABLE>
</FORM> | |
|
|
|
|
|
|
|
для: Buhen
(13.07.2007 в 22:49)
| | можете посмотреть мою в этом плане
/* Получение выделенного текста элемента */
function getSelection (obj)
{
/* Начальные значения, пусты */
var data = ['', '', ''];
/* Если Internet Explorer или Opera */
if (!is_ff)
{
var sel = document.selection.createRange();
data[1] = sel.text;
}
/* Если FireFox */
else
{
/* Получаем границы текста */
var text = obj.value;
var start = obj.selectionStart;
var end = obj.selectionEnd;
/* И сохраняем текст */
data[0] = text.substring (0, start);
data[1] = text.substring (start, end);
data[2] = text.substring (end, text.length);
}
/* Возвращаем результат */
return data;
}
/* Вставка bb кодов */
function bbcode (type, value)
{
var input = document.mymsg.text;
/* Получаем выделенный текст */
var text = getSelection (input);
/* Если текст есть */
if (text[1].length > 0)
{
output = text[1];
/* Оборачиваем его тегами */
if (type == 'color')
output = '[color=' + value + ']' + text[1] + '[/color]';
if (type == 'bb')
output = '[' + value + ']' + text[1] + '[/' + value + ']';
if (type == 'face')
output = '[face=' + value + ']' + text[1] + '[/face]';
if (type == 'size')
output = '[size=' + value + ']' + text[1] + '[/size]';
/* Возвращаем в поле */
if (!is_ff)
sel.text = output;
else
input.value = text[0] + output + text[2];
}
/* Если текста нет, то просто дописываем теги в конец поля */
else
{
if (type == 'color')
input.value += '[color=' + value + '][/color]';
if (type =="bb")
input.value += '[' + value + '][/' + value + ']';
if (type == 'face')
input.value += '[face=' + value + '][/face]';
if (type == 'size')
input.value += '[size=' + value + '][/size]';
}
/* Наводим фокус */
input.focus();
/* И делаем проверку поля */
check_field();
}
|
только вместо if (!is_ff) поставить наверное следует if (document.selection) | |
|
|
|
|
|
|
|
для: bronenos
(13.07.2007 в 23:07)
| | А в моем то случае как сделать ? покажите на примере моей формы. Довольно таки непростой код! | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 09:04)
| | я и комментарии поставил и копировал только нужное
трудно разобраться или чего то не понимаете? | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 09:21)
| | Как то к моему коду привязать? с java скриптом сложно разобраться! | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 09:26)
| | ну посмотрите на условия что делается при type равном size color face и bb и измените строчку
var input = ...
и вызывайте bbcode('bb', 'i') например | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 09:26)
| | Я нашел решение. Эту тему в топку. | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 09:32)
| | вы скорее не нашли решение, а вам его преподнесли на блюдечке с ложечкой, я лишь не дал ложечку а предложил самому ее взять | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 09:41)
| | Все равно спасибо. Главное чтобы скрипт был прост и удобен и выполнял все надлежащие ему функции. Я заглянул в поиск и там нашел готовый код. А вам большое спасибо. Просто скрипт который я нашел в 3 раза короче и понятней для меня а по функциональности не уступает вашему.
С уважением | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 09:51)
| | был бы признателен если бы вы тогда выложили его здесь
поглядеть на него | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 09:56)
| | Вот он:
<script type="text/javascript">
function insertext (x)
{
document.forms.form1.content.focus ();
var sel = document.selection.createRange ();
var selt = sel.text;
sel.text = '[' + x + ']' + selt + '[/' + x + ']';
}
</script>
<form method="post" name="form1">
<table class="td" style="width: 345px; bottom: 100" border=1>
<tr>
<td>
<input type="button" onclick="insertext ('b')" value="B" title="Жирный" style="font-weight: bold" /> |
<input type="button" onclick="insertext ('u')" value="U" title="Подчеркнутый" style="text-decoration: underline" /> |
<input type="button" onclick="insertext ('i')" value="I" title="Курсивом" style="font-style: italic" /> |
<input type="button" onclick="insertext ('color')" value="Color" title="Цветной" /> |
<input type="button" onclick="insertext ('url')" value="URL" title="Ссылка" /> |
<input type="button" onclick="insertext ('img')" value="Image" title="Картинка" />
</td></tr>
<tr><td><textarea cols="60" rows="10" name="content"></textarea></td></tr>
<tr><td><input type="submit" value="Ответить" title="Комментировать" /></td></tr>
</table>
</form> | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 09:57)
| | тут вы малость ошиблись
мой еще позволяет вставлять размер, цвет и шрифт и адаптирован под FireFox тоже и при отсутствии выделения вставляет их в конец текста
поэтому и размер такой, хотя я и знаю как его уменьшить
это не хвастовство, просто подметил
ну, каждому свое в общем
нашли выход - и хорошо | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 10:08)
| | Захотелось опробывать ваш скрипт. Я не силен в ява скриптах. Хорошо. Ваш скрипт лучше ну а как привязать мой первый скрипт в теме с вашим напишите все чтоб работало . Буду признателен. | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 10:11)
| | первую строчку bbcode функции изменить на
var input = document.q.comment;
и на кнопках вызывать
onClick="bbcode('bb', 'i')" например | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 10:20)
| | НЕ работает!
<SCRIPT LANGUAGE="JavaScript">
<!--
/* Получение выделенного текста элемента */
function getSelection (obj)
{
/* Начальные значения, пусты */
var data = ['', '', ''];
/* Если Internet Explorer или Opera */
if (!is_ff)
{
var sel = document.selection.createRange();
data[1] = sel.text;
}
/* Если FireFox */
else
{
/* Получаем границы текста */
var text = obj.value;
var start = obj.selectionStart;
var end = obj.selectionEnd;
/* И сохраняем текст */
data[0] = text.substring (0, start);
data[1] = text.substring (start, end);
data[2] = text.substring (end, text.length);
}
/* Возвращаем результат */
return data;
}
/* Вставка bb кодов */
function bbcode (type, value)
{
var input = document.q.comment;
/* Получаем выделенный текст */
var text = getSelection (input);
/* Если текст есть */
if (text[1].length > 0)
{
output = text[1];
/* Оборачиваем его тегами */
if (type == 'color')
output = '[color=' + value + ']' + text[1] + '[/color]';
if (type == 'bb')
output = '[' + value + ']' + text[1] + '[/' + value + ']';
if (type == 'face')
output = '[face=' + value + ']' + text[1] + '[/face]';
if (type == 'size')
output = '[size=' + value + ']' + text[1] + '[/size]';
/* Возвращаем в поле */
if (!is_ff)
sel.text = output;
else
input.value = text[0] + output + text[2];
}
/* Если текста нет, то просто дописываем теги в конец поля */
else
{
if (type == 'color')
input.value += '[color=' + value + '][/color]';
if (type =="bb")
input.value += '[' + value + '][/' + value + ']';
if (type == 'face')
input.value += '[face=' + value + '][/face]';
if (type == 'size')
input.value += '[size=' + value + '][/size]';
}
/* Наводим фокус */
input.focus();
/* И делаем проверку поля */
check_field();
}
//-->
</SCRIPT>
<FORM METHOD=POST NAME="q">
<TEXTAREA ROWS="5" COLS="30" NAME="comment"></TEXTAREA>
<input type="button" onClick="bbcode('bb', 'i')" value="B">
</FORM | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 10:38)
| | 1. я говорил заменить
if (!is_ff) на if (document.selection)
2. прошу прощенья, check field в конце надо убрать | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 10:49)
| | Тег вставляется а при выделлении текста ничего не происходит! Проверьте пожалуйста!
<SCRIPT LANGUAGE="JavaScript">
<!--
/* Получение выделенного текста элемента */
function getSelection (obj)
{
/* Начальные значения, пусты */
var data = ['', '', ''];
/* Если Internet Explorer или Opera */
if (document.selection)
{
var sel = document.selection.createRange();
data[1] = sel.text;
}
/* Если FireFox */
else
{
/* Получаем границы текста */
var text = obj.value;
var start = obj.selectionStart;
var end = obj.selectionEnd;
/* И сохраняем текст */
data[0] = text.substring (0, start);
data[1] = text.substring (start, end);
data[2] = text.substring (end, text.length);
}
/* Возвращаем результат */
return data;
}
/* Вставка bb кодов */
function bbcode (type, value)
{
var input = document.q.comment;
/* Получаем выделенный текст */
var text = getSelection (input);
/* Если текст есть */
if (text[1].length > 0)
{
output = text[1];
/* Оборачиваем его тегами */
if (type == 'color')
output = '[color=' + value + ']' + text[1] + '[/color]';
if (type == 'bb')
output = '[' + value + ']' + text[1] + '[/' + value + ']';
if (type == 'face')
output = '[face=' + value + ']' + text[1] + '[/face]';
if (type == 'size')
output = '[size=' + value + ']' + text[1] + '[/size]';
/* Возвращаем в поле */
if (document.selection)
sel.text = output;
else
input.value = text[0] + output + text[2];
}
/* Если текста нет, то просто дописываем теги в конец поля */
else
{
if (type == 'color')
input.value += '[color=' + value + '][/color]';
if (type =="bb")
input.value += '[' + value + '][/' + value + ']';
if (type == 'face')
input.value += '[face=' + value + '][/face]';
if (type == 'size')
input.value += '[size=' + value + '][/size]';
}
/* Наводим фокус */
input.focus();
}
//-->
</SCRIPT>
<FORM METHOD=POST NAME="q">
<TEXTAREA ROWS="5" COLS="30" NAME="comment"></TEXTAREA>
<input type="button" onClick="bbcode('bb', 'i')" value="i">
</FORM | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 10:56)
| |
<SCRIPT LANGUAGE="JavaScript">
<!--
/* Получение выделенного текста элемента */
function getSelection (obj)
{
/* Начальные значения, пусты */
var data = ['', '', ''];
/* Если Internet Explorer или Opera */
if (document.selection)
{
sel = document.selection.createRange();
data[1] = sel.text;
}
/* Если FireFox */
else
{
/* Получаем границы текста */
var text = obj.value;
var start = obj.selectionStart;
var end = obj.selectionEnd;
/* И сохраняем текст */
data[0] = text.substring (0, start);
data[1] = text.substring (start, end);
data[2] = text.substring (end, text.length);
}
/* Возвращаем результат */
return data;
}
/* Вставка bb кодов */
function bbcode (type, value)
{
var input = document.q.comment;
/* Получаем выделенный текст */
var text = getSelection (input);
/* Если текст есть */
if (text[1].length > 0)
{
output = text[1];
/* Оборачиваем его тегами */
if (type == 'color')
output = '[color=' + value + ']' + text[1] + '[/color]';
if (type == 'bb')
output = '[' + value + ']' + text[1] + '[/' + value + ']';
if (type == 'face')
output = '[face=' + value + ']' + text[1] + '[/face]';
if (type == 'size')
output = '[size=' + value + ']' + text[1] + '[/size]';
/* Возвращаем в поле */
if (document.selection)
sel.text = output;
else
input.value = text[0] + output + text[2];
}
/* Если текста нет, то просто дописываем теги в конец поля */
else
{
if (type == 'color')
input.value += '[color=' + value + '][/color]';
if (type =="bb")
input.value += '[' + value + '][/' + value + ']';
if (type == 'face')
input.value += '[face=' + value + '][/face]';
if (type == 'size')
input.value += '[size=' + value + '][/size]';
}
/* Наводим фокус */
input.focus();
}
//-->
</SCRIPT>
<FORM METHOD=POST NAME="q">
<TEXTAREA ROWS="5" COLS="30" NAME="comment"></TEXTAREA>
<input type="button" onClick="bbcode('bb', 'i')" value="i">
</FORM>
|
пока вносил изменения не заметил что ошибку сделал | |
|
|
|
|
|
|
|
для: bronenos
(14.07.2007 в 11:21)
| | Скрипт вроде заработал... И добавляется в базу вместе с тегами. Но в итоге текст выводиться вместе с тегами.... текст .... В чем может быть проблема? | |
|
|
|
|
|
|
|
для: shmel79
(22.02.2008 в 23:11)
| | Ну так надо парсить (форум регулярок, замена [b] на <b>)
P.S. Простая замена не пойдет, опасно
И кстати, тема, посмотрите, давнишняя, в старой бы и продожали | |
|
|
|
|
|
|
|
для: bronenos
(22.02.2008 в 23:36)
| | Че-че делать... по-подробнее??? | |
|
|
|
|
|
|
|
для: shmel79
(22.02.2008 в 23:51)
| | На форуме по регуляркам посмотреть парсинг бб при выводе | |
|
|
|
|
|
|
|
для: bronenos
(23.02.2008 в 00:44)
| | Помогите плз по этим парсингом...
не могу понять..... что да как.....
вставляю вот эту функцию в обработчик...
...
function filtering($text){
$text=str_replace("","<b>",$text);
$text=str_replace("","</b>",$etxt);
return $text;
}
if (isset($title) && isset($description) && isset($date) && isset($text))
{
$text=filtering($text);
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO...
|
и выводит текст без тегов.... ( в чем может быть проблема? | |
|
|
|