ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Форма с расширенными возможностями
  #1  
Старый 01.09.2008, 14:14
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию Форма с расширенными возможностями

Все видели форму, когда постят на форум.. вот мне нужна такая же, только всего с двумя кнопками: сделать выделенный текст жирным, вставить ссылку. Если есть что предложить, или уже есть готовый вариант, пишите цену..
 
Ответить с цитированием

  #2  
Старый 01.09.2008, 14:21
Аватар для BlackSun
BlackSun
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме:
10046345

Репутация: 4589


По умолчанию

<form method="POST" id="mforum">
<textarea name="msg" ..
Код:
script>
function inc_tag(st_t, en_t)
{ 
	obj = document.forms.mforum.msg;
	obj2 = document.forms.mforum;
	if ((document.selection)) 
	{
		obj.focus();
		obj2.document.selection.createRange().text = st_t+obj2.document.selection.createRange().text+en_t;
	} else 
	{
		obj.focus();
		obj.value += st_t+en_t;
	}
}
</script>
inc_tag(st_t, en_t) - st_t - начальный тег ([*B] например), en_t - закрывающий.
Пробелы незабудь вырезать, которые ачат вставил.
 
Ответить с цитированием

  #3  
Старый 01.09.2008, 14:47
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Ок, спс. Сча испытаю..
 
Ответить с цитированием

  #4  
Старый 01.09.2008, 15:02
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Код:
<html>
</head>
<script>
	function inc_tag(st_t, en_t)
	{ 
		obj=document.forms.mforum.msg;
		obj2=document.forms.mforum;
		if ((document.selection)) 
		{
			obj.focus();
			obj2.document.selection.createRange().text=st_t+obj2.document.selection.createRange().text+en_t;
		} 
		else 
		{
			obj.focus();
			obj.value+=st_t+en_t;
		}
	}
</script>
</head>
<body>
<form method="POST" id="mforum">
<textarea name="msg" WRAP="virtual" COLS="40" ROWS="3">
</TEXTAREA><br>
<INPUT TYPE="button" VALUE="B" onClick="inc_tag([тег], [/тег])">
</form>
</body>
</html>
Вот тут накидал, тестовый вариант.. я с яваскриптом на вы.. только он как то работать не особо желает.. Пробелы убрал..

Последний раз редактировалось 0x22b; 01.09.2008 в 15:04..
 
Ответить с цитированием

  #5  
Старый 01.09.2008, 15:23
Аватар для Naydav
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме:
849583

Репутация: 210
По умолчанию

Цитата:
onClick="inc_tag([тег], [/тег])"
попробуй так, хота логика скрипта странная
onClick="inc_tag('<b>', '</b>')", (вместо "<", ">" нужно поставить "[", "]" ) так как в текстареа будет результат,
<b>Выделенный текст</b>, а не сразу выделенный текст болдом

поставь любой визивик, например TinyMCE, и укажи в настройках, какие кнопки отображать, делов 5 минут

Последний раз редактировалось Naydav; 01.09.2008 в 15:29..
 
Ответить с цитированием

  #6  
Старый 01.09.2008, 15:26
Аватар для Jer1cho
Jer1cho
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме:
3942177

Репутация: 244
Отправить сообщение для Jer1cho с помощью ICQ
По умолчанию

Когда-то выдерал из форума phpbb его бб-коды:
PHP код:
<html>
 <
head>
    <
title>test</title>
    <
script type="text/javascript">
        var 
imageTag false;
        var 
theSelection false;
        var 
clientPC navigator.userAgent.toLowerCase();
        var 
clientVer parseInt(navigator.appVersion);
        var 
is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
        var 
is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
        && (
clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
        && (
clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
        var 
is_moz 0;
        var 
is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
        var 
is_mac = (clientPC.indexOf("mac")!=-1);
        
bbcode = new Array();
        
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[s]','[/s]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[url]','[/url]');
        
imageTag false;
        function 
getarraysize(thearray) {
        for (
0thearray.lengthi++) {
        if ((
thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
        return 
i;}
        return 
thearray.length;}
        function 
arraypush(thearray,value) {
        
thearraygetarraysize(thearray) ] = value;}
        function 
arraypop(thearray) {
        
thearraysize getarraysize(thearray);
        
retval thearray[thearraysize 1];
        
delete thearray[thearraysize 1];
        return 
retval;}
        function 
bbstyle(bbnumber) {
        var 
txtarea document.post.message;
        
txtarea.focus();
        
donotinsert false;
        
theSelection false;
        
bblast 0;
        if (
bbnumber == -1) {
        while (
bbcode[0]) {
        
butnumber arraypop(bbcode) - 1;
        
txtarea.value += bbtags[butnumber 1];
        
buttext = eval('document.post.addbbcode' butnumber '.value');
        eval(
'document.post.addbbcode' butnumber '.value ="' buttext.substr(0,(buttext.length 1)) + '"');}
        
imageTag false;
        
txtarea.focus();
        return;}
        if ((
clientVer >= 4) && is_ie && is_win){
        
theSelection document.selection.createRange().text;
        if (
theSelection) {
        
document.selection.createRange().text bbtags[bbnumber] + theSelection bbtags[bbnumber+1];
        
txtarea.focus();
        
theSelection '';
        return;}}
        else if (
txtarea.selectionEnd && (txtarea.selectionEnd txtarea.selectionStart 0)){
        
mozWrap(txtareabbtags[bbnumber], bbtags[bbnumber+1]);
        return;}
        for (
0bbcode.lengthi++) {
        if (
bbcode[i] == bbnumber+1) {
        
bblast i;
        
donotinsert true;}}
        if (
donotinsert) {
        while (
bbcode[bblast]) {
        
butnumber arraypop(bbcode) - 1;
        
txtarea.value += bbtags[butnumber 1];
        
buttext = eval('document.post.addbbcode' butnumber '.value');
        eval(
'document.post.addbbcode' butnumber '.value ="' buttext.substr(0,(buttext.length 1)) + '"');
        
imageTag false;}
        
txtarea.focus();
        return;
        } else {
        if (
imageTag && (bbnumber != 14)) {
        
txtarea.value += bbtags[15];
        
lastValue arraypop(bbcode) - 1;
        
document.post.addbbcode14.value "Img";
        
imageTag false;}
        
txtarea.value += bbtags[bbnumber];
        if ((
bbnumber == 14) && (imageTag == false)) imageTag 1;
        
arraypush(bbcode,bbnumber+1);
        eval(
'document.post.addbbcode'+bbnumber+'.value += "*"');
        
txtarea.focus();
        return;}
        
storeCaret(txtarea);}
        function 
mozWrap(txtareaopenclose){
        var 
selLength txtarea.textLength;
        var 
selStart txtarea.selectionStart;
        var 
selEnd txtarea.selectionEnd;
        if (
selEnd == || selEnd == 2
        
selEnd selLength;
        var 
s1 = (txtarea.value).substring(0,selStart);
        var 
s2 = (txtarea.value).substring(selStartselEnd)
        var 
s3 = (txtarea.value).substring(selEndselLength);
        
txtarea.value s1 open s2 close s3;
        return;
        }
    </
script>
 </
head>
 <
body>
    <
form action="" name="post" method="post">
        <
input type="button" value="B" onclick="bbstyle(0)"/>
        <
input type="button" value="i" onclick="bbstyle(2)"/>
        <
input type="button" value="u" onclick="bbstyle(4)"/>
        <
input type="button" value="s" onclick="bbstyle(6)"/>
        <
input type="button" value="Quote" onclick="bbstyle(8)"/>
        <
input type="button" value="Code" onclick="bbstyle(10)"/>
        <
input type="button" value="List" onclick="bbstyle(12)"/>
        <
input type="button" value="List=" onclick="bbstyle(14)"/>
        <
input type="button" value="URL" onclick="bbstyle(16)"/><br/>
        <
textarea name="message" rows="10" cols="50"></textarea>
    </
form>
 </
body>
</
html
 
Ответить с цитированием

  #7  
Старый 01.09.2008, 16:06
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Всё гораздо проще)) + ко всему кроссбраузерность.
Я в своих проектах его использую)
Код:
/* BB-codes */
function bbcode(open, close){
	msgfield = (document.all) ? document.all.msg : document.forms['post']['msg']; 

	/* IE */
	if (document.selection && document.selection.createRange){
		msgfield.focus();
		sel = document.selection.createRange();
		sel.text = open + sel.text + close;
		msgfield.focus();
	}
	/* Mozilla */
	else if (msgfield.selectionStart || msgfield.selectionStart == '0'){
		var startPos = msgfield.selectionStart;
		var endPos = msgfield.selectionEnd;

		msgfield.value = msgfield.value.substring(0, startPos) + open + msgfield.value.substring(startPos, endPos) + close + msgfield.value.substring(endPos, msgfield.value.length);
		msgfield.selectionStart = msgfield.selectionEnd = endPos + open.length + close.length;
		msgfield.focus();
	}
	/* Main browsers */
	else{
		msgfield.value += open + close;
		msgfield.focus();
	}
}
PHP код:
<form id="post" action="" method="post">
<
button type="button" onclick="bbcode('[b]','[/b]')"><b>B</b></button>
<
button type="button" onclick="bbcode('[i]','[/i]')"><i>I</i></button>
<
textarea name="msg"></textarea>
</
form
 
Ответить с цитированием

  #8  
Старый 01.09.2008, 16:17
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Ооо, спасибо вам огромное!
to BlackSun спасибо за кодес!
to Naydav спс, забыл просто теги в ковычки поставить!
to Jer1cho спасиб огромное!
кстати вот скромное вознаграждение, по два в руки(только для участников предэдущих постов)..
13983333
16424444
17641111
18048888
19626666
25305555
С меня еще + ну прям выручили, я уж искать заколебался.. отпишитесь какие номерки забрать хотите..

ай яй, Енот, обожди сча еще два добавлю.. ))
 
Ответить с цитированием

  #9  
Старый 01.09.2008, 16:19
Аватар для BlackSun
BlackSun
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме:
10046345

Репутация: 4589


По умолчанию

Мну ненадо) отдай нужнаюшимся
 
Ответить с цитированием

  #10  
Старый 01.09.2008, 16:20
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Значит BlackSun не нужно, всеравно спасибо!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма для связи svesve PHP, PERL, MySQL, JavaScript 7 15.08.2008 09:06
Не работает форма с кирилицей serg-php PHP, PERL, MySQL, JavaScript 6 10.08.2008 17:40
Форма записывает логин и пароль Дюша Болталка 6 09.12.2007 11:40
Что за форма ? или как обойти такой фильтр ??? Nova Уязвимости 3 24.01.2006 10:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ