Obsługa emotikon

Jak zrobić tak jak np.tutaj na forum że jak się kliknie w emotikone to jej kod sie wkleja w pole textowe napisałem już sobie obsługe emotek w php. Pewnie trzeba cos JS kombinować.

Prosze o pomoc :help:

Skoro napisałeś już w php (swoją drogą strasznie ciekawi mnie jak to zrobiłeś), to widocznie nei trzeba tego robić w JS.

Ale, jednak jakoś to JS się wydaje odpowiedniejszym do tego… Po kliknięciu emotki, funkcja powinna była pobierać zawartość pola textarea, na jej końcu dodawać kod odpowiedzialny za daną emotkę (może być np w formie znaczników przetwarzanych następnie przez skrypt php) i tak przetworzonego stringa umieścić ponownie w textarea. Taki powinien być mniej więcej schemat działania.

Chyba żle mnie zrozumiałeś ja w php napisałem tylko skrypt obsługujący emotki ze jak sobie wpisze w kśiędze gości np.

:cwaniak:

to mi to zamienaia przed wyświtleniem na

[/code]
 a mi chodzi o to zeby powiedzmy nad textarea była lista emotek i po kliknięciu na nią wstawiał sie jej kod

znalazłem coś takiego ale jak to użyć

[code] :mrgreen:

I dokładnie zarys takiej funkcji przedstawiłem w drugiej części mojego poprzedniego postu. Widzę, że znalazłeś w kodzie wywołania odpowiedniej funkcji (insert_text), teraz jeszcze należało znaleźć jeszcze jej definicję:

function insert_text(text, spaces, popup)

{

	var textarea;


	if (!popup) 

	{

		textarea = document.forms[form_name].elements[text_name];

	} 

	else 

	{

		textarea = opener.document.forms[form_name].elements[text_name];

	}

	if (spaces) 

	{

		text = ' ' + text + ' ';

	}


	if (!isNaN(textarea.selectionStart))

	{

		var sel_start = textarea.selectionStart;

		var sel_end = textarea.selectionEnd;


		mozWrap(textarea, text, '')

		textarea.selectionStart = sel_start + text.length;

		textarea.selectionEnd = sel_end + text.length;

	}

	else if (textarea.createTextRange && textarea.caretPos)

	{

		if (baseHeight != textarea.caretPos.boundingHeight) 

		{

			textarea.focus();

			storeCaret(textarea);

		}


		var caret_pos = textarea.caretPos;

		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;

	}

	else

	{

		textarea.value = textarea.value + text;

	}

	if (!popup) 

	{

		textarea.focus();

	}

}

ale takie rozwiązanie imo jest nazbyt kompleksowe i można by je znacznie uprościć to pewnie jakichś 3-4 linijek, zgodnie ze schematem który wcześniej opisałem. Właściwie powinien CIę interesować sam fragment z textarea.value = textarea.value + text; i ew. focus() no i jeszcze kwestia dobrania się o odpowiedniego textarea (poprzez model DOM)

A byś mógł mi powiedzieć jak to obsłużyć. Może jakiś przykład z textarea :smiley: