Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie emotikonów...
gniew1971
post
Post #1





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 18.12.2008

Ostrzeżenie: (0%)
-----


Witam !
Mam problem. Co zrobić by jak klikne w emotikona pojawił sie w polu do pisania, a później normalnie wyświetlał się w komentarzach? Pokaże obrazek o co mi chodzi:




Prosze pomóżcie !
Powód edycji: [erix] nie ten dział
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Kildyt
post
Post #2





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


Nieodpowiedni dział wybrałeś. Takie rzeczy robi się w javascripcie.
Możesz zrobić to na kilka sposobów. Z tego co wiem:
- jeżeli ma się dodać na koniec: innerHTML,
- jeżeli w miejsce kursora:
Kod
    var element = document.getElementById('textarea' + id);
    
    var selection = element.value.substr(element.selectionStart, element.selectionEnd - element.selectionStart);
    start = element.value.substr(0, element.selectionStart);
    end = element.value.substr(element.selectionEnd, element.textLength);
    
    element.value = start + selection + work + end;
    
    element.focus();
    document.getElementById('textarea' + id + '_info').style.display = 'none';
(jak nie będziesz potrafił dostosować go do swoich potrzeb - pomożemy; jestem amatorem w js, więc kod może być kiepskiej jakości).

Ogólnie musisz oprzeć się na DHTML-u i js-ie.


--------------------
Go to the top of the page
+Quote Post
gniew1971
post
Post #3





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 18.12.2008

Ostrzeżenie: (0%)
-----


Dobra, czyli jak to mam wstawić, dokładniej?
Go to the top of the page
+Quote Post
Kildyt
post
Post #4





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


Już napisałem. Skorzystaj z DHTML-a i javascripta. Gotowego przepisu tutaj nie dostaniesz.
Ogólnikowo:
- dodaj do funkcji javascript działanie (w tym wypadku dodawanie tekstu do texraea),
- do emotikonki dodaj zdarzenie onclick zawierające nazwę funkcji,
- do wybranego textarea dopisz unikalny identyfikator,
- w funkcji js działaj na podanym identyfikatorze.


--------------------
Go to the top of the page
+Quote Post
gniew1971
post
Post #5





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 18.12.2008

Ostrzeżenie: (0%)
-----


Oj, to chyba na mnie za trudne...
Go to the top of the page
+Quote Post
Kildyt
post
Post #6





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


Wcale nie takie trudne. smile.gif Wystarczy trochę chęci i samozaparcia.

Trochę pomogę:
  1. <script type="text/javascript">
  2. function emoticonAdd(work) {
  3. var element = document.getElementById('textarea');
  4. element.innerHtml += ' ' + work + ' ';
  5. /* albo element.value.innerHtml += ' ' + work + ' '; zapomniałem biggrin.gif */
  6. }
  7. </head>
  8.  
  9. <a href="#" onclick="emoticonAdd(':)');"><img src="" alt="uśmiech" /></a>
  10. <textarea id="textarea"></textarea>

Pisałem w poście, więc mogą być błędy.


--------------------
Go to the top of the page
+Quote Post
gniew1971
post
Post #7





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 18.12.2008

Ostrzeżenie: (0%)
-----


Więć sprawa ma się tak:


Kod
    echo "<dt style='float:left; padding-left:37px;'><b>Emotikony</b></dt><dt style='padding-left:37px;'><b>Treść</b></dt><div style='float: left; background-image: url(http://moszczenica.info/podklad.jpg); border:1px; border-color:gray; width:150px; height:135px;'><a href=\"#\" onclick='emoticonAdd(':)');'><img src='images/smiles/smile_angry.gif'></a></div><div><textarea style='background-image: url(http://moszczenica.info/podklad.jpg); border:1; border-color:lightgray;' id='form_text' rows='7' cols='40' style='width:250px; height:100px;'></textarea></div>";
- to odpowiada za textere, i tu daje emotke.


Kod
<script type="text/javascript">
function emoticonAdd(work) {
var element = document.getElementById('form_text');
element.innerHtml += ' ' + work + ' ';
/* albo element.value.innerHtml += ' ' + work + ' '; zapomniałem :D */
}
</script>
- a to jest ten twój skrypt


co mam robić?
Go to the top of the page
+Quote Post
Kildyt
post
Post #8





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


nie
  1. onclick='emoticonAdd(':)');'
tylko
  1. onclick="emoticonAdd(':)');"


Napisz co się dzieje jak klikasz na emotikonę.

PS jednak
  1. element.innerHtml += ' ' + work + ' ';


Ten post edytował Kildyt 15.07.2009, 08:41:49


--------------------
Go to the top of the page
+Quote Post
gniew1971
post
Post #9





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 18.12.2008

Ostrzeżenie: (0%)
-----


Poprawiłem trochę:

Kod
echo "<dt style='float:left; padding-left:37px;'><b>Emotikony</b></dt><dt style='padding-left:37px;'><b>Treść</b></dt><div style='float: left; background-image: url(http://moszczenica.info/podklad.jpg); border:1px; border-color:gray; width:150px; height:135px;'><a href=\"#\" onclick=\"emoticonAdd(':)');\"><img src='images/smiles/smile_angry.gif' alt=\":)\" border='0'></a></div><div><textarea style='background-image: url(http://moszczenica.info/podklad.jpg); border:1; border-color:lightgray;' id='form_text' rows='7' cols='40' style='width:250px; height:100px;'></textarea></div>";


nie może być: "onclick" - ponieważ strona się nie włączy musi być \"onclick\". Po kliknięciu w emotkę przenosi mnie do strony głównej.


Moje kolejny pytanie:
Kod
<script type="text/javascript">
function emoticonAdd(work) {
var element = document.getElementById('form_text');
element.innerHtml += 'czy coś tu mam wpisać' + work + 'czy coś tu mam wpisać';
/* albo element.value.innerHtml += ' ' + work + ' '; zapomniałem :D */
}
</script>




P.S To nie jest stronka w HTML, tylko to jest plik odpowiadający za komentarze i jest on w PHP.

Ten post edytował gniew1971 15.07.2009, 09:40:36
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Po kliknięciu w emotkę przenosi mnie do strony głównej.

Wystarczy, że funkcja podpięta do onclick zwróci false i nie przeniesie. Ładniej można zrobić przez przechwycenie zdarzenia i wykonanie e.preventDefault().


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:20