Autor | Zpráva | ||
---|---|---|---|
shakal Profil * |
#1 · Zasláno: 17. 10. 2009, 14:51:54
potřebuji vložení smajlíku do formuláře.
Včera jsem tu řešil, jak udělat textové smajlíky za grafické. To už funguje jak má. Ted ale potřebuji toto: Mám formulář a smajlíky. Jak udělám, když kliknu na smajlíka aby se ve formuláři ukázalo ":-)" |
||
MCKAY Profil |
#2 · Zasláno: 17. 10. 2009, 15:17:29
Párkrát se to tu již řešilo, ale tedy dejme tomu. Mám tu jeden starší skript z diskuse, mírně přepsaný:
function insertsm(tag, parovy, text, prependText, appendText) { //inicializace proměných var textarea = document.forms["clanek"].elements["text"]; var startTag = tag; var endTag = ''; if (typeof text == 'undefined') { var tagText = getTextareaSelectionsm(); } else { var tagText = text; } if (typeof parovy == 'undefined') { var parovy = true; } if (typeof prependText == 'undefined') { var prependText = ''; } if (typeof appendText == 'undefined') { var appendText = ''; } //přepsání výchozích hodnot pro specifické tagy if (tag == 'url') { if (tagText == '') { tagText = 'Odkaz'; } var regexp = new RegExp("^((http|https|ftp)\\://)([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$"); var regexp2 = new RegExp("^([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|www\\.([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$"); if (regexp.test(tagText)) { startTag = '[url=' + tagText + ']'; } else if (regexp2.test(tagText)) { startTag = '[url=http://' + tagText + ']'; } else { startTag = '[url=http://example.com]'; selectionStart = prependText.length + 5; selectionEnd = prependText.length + 23; } } //vytvoření textu pro vložení if (!parovy) { endTag = ''; } var text2insert = prependText + startTag + tagText + endTag + appendText; //vložení: textarea.focus(); if (typeof textarea.selectionStart != 'undefined') { var start = textarea.selectionStart; var end = textarea.selectionEnd; textarea.value = textarea.value.substr(0, start) + text2insert + textarea.value.substr(end); //nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') { textarea.selectionStart = start + selectionStart; textarea.selectionEnd = start + selectionEnd; } else { if (tagText == '') { //skoceni mezi tagy textarea.selectionStart = start + prependText.length + startTag.length; textarea.selectionEnd = start + prependText.length + startTag.length; } else { //skoceni za posledni tag textarea.selectionStart = start + text2insert.length; textarea.selectionEnd = start + text2insert.length; } } } else if (typeof document.selection != 'undefined') { var range = document.selection.createRange(); range.text = text2insert; //nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') { range.moveStart('character', -text2insert.length + selectionStart); range.moveEnd('character', -text2insert.length + selectionEnd); } else { if (tagText == '') { //skoceni mezi tagy range.move('character', -(endTag.length + appendText.length)); } else { //skoceni za posledni tag //protoze prohlizec v tomto pripade skoci za posledni tag automaticky, neni treba nic posouvat } } range.select(); } //unset promenych delete selectionStart; delete selectionEnd; } function getTextareaSelectionsm() { var textarea = document.forms["clanek"].elements["text"]; if (typeof textarea.selectionStart != 'undefined') { var selection = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd); } else if (typeof document.selection != 'undefined') { var selection = document.selection.createRange().text; } else { //alert('Bug!'); } return selection; } Ve zvýrazněných částech textu si přepiš první hodnotu v hranatých závorkách na jméno (name) formuláře, a do druhé vepiš také jméno (name) textarey. Potom si někam umísti obrázek a nastav mu <img onlick="insertsm(':-)');return false;" src="obrazek.png" alt="Smajlík" /> Já se v javascriptu moc nevyznám, ale experimentoval jsem, takže je tam možná něco navíc, ale funguje mi to. :-) |
||
shakal Profil * |
#3 · Zasláno: 17. 10. 2009, 15:21:24
Někdo něco lehčího nemá?
|
||
MCKAY Profil |
#4 · Zasláno: 17. 10. 2009, 15:42:06
shakal:
Není to tak těžké jak to vypadá. Celý ten dlouhý skript napiš do externího js a přepiš v něm ty zvýrazněné části. Potom si to hoď do stránky a použij. Je to univerzální. Inu jak se to říká? Bez práce nejsou koláče? |
||
shakal Profil * |
#5 · Zasláno: 17. 10. 2009, 16:10:30
Takže když mám tento HTML
<b>Zpráva:</b><br> <textarea name="message" rows="5" cols="30"></textarea><br> <br> <input type="submit" value="Odeslat zprávu"> jak bude JS vypadat? |
||
shakal Profil * |
#6 · Zasláno: 17. 10. 2009, 16:19:57
Nejde mi to, nevím za co přesně mám nahradit
document.forms["clanek"].elements["text"]; |
||
MCKAY Profil |
#7 · Zasláno: 17. 10. 2009, 16:27:58
Ok, takže po lopatě: formulář musí vypadat minimálně takto:
<form method="post" action="neco.php" name="diskuse"> <textarea name="message"></textarea> </form> a js bude vypadat následovně: function insertsm(tag, parovy, text, prependText, appendText) { //inicializace proměných var textarea = document.forms["diskuse"].elements["message"]; var startTag = tag; var endTag = ''; if (typeof text == 'undefined') { var tagText = getTextareaSelectionsm(); } else { var tagText = text; } if (typeof parovy == 'undefined') { var parovy = true; } if (typeof prependText == 'undefined') { var prependText = ''; } if (typeof appendText == 'undefined') { var appendText = ''; } //přepsání výchozích hodnot pro specifické tagy if (tag == 'url') { if (tagText == '') { tagText = 'Odkaz'; } var regexp = new RegExp("^((http|https|ftp)\\://)([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$"); var regexp2 = new RegExp("^([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|www\\.([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$"); if (regexp.test(tagText)) { startTag = '[url=' + tagText + ']'; } else if (regexp2.test(tagText)) { startTag = '[url=http://' + tagText + ']'; } else { startTag = '[url=http://example.com]'; selectionStart = prependText.length + 5; selectionEnd = prependText.length + 23; } } //vytvoření textu pro vložení if (!parovy) { endTag = ''; } var text2insert = prependText + startTag + tagText + endTag + appendText; //vložení: textarea.focus(); if (typeof textarea.selectionStart != 'undefined') { var start = textarea.selectionStart; var end = textarea.selectionEnd; textarea.value = textarea.value.substr(0, start) + text2insert + textarea.value.substr(end); //nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') { textarea.selectionStart = start + selectionStart; textarea.selectionEnd = start + selectionEnd; } else { if (tagText == '') { //skoceni mezi tagy textarea.selectionStart = start + prependText.length + startTag.length; textarea.selectionEnd = start + prependText.length + startTag.length; } else { //skoceni za posledni tag textarea.selectionStart = start + text2insert.length; textarea.selectionEnd = start + text2insert.length; } } } else if (typeof document.selection != 'undefined') { var range = document.selection.createRange(); range.text = text2insert; //nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') { range.moveStart('character', -text2insert.length + selectionStart); range.moveEnd('character', -text2insert.length + selectionEnd); } else { if (tagText == '') { //skoceni mezi tagy range.move('character', -(endTag.length + appendText.length)); } else { //skoceni za posledni tag //protoze prohlizec v tomto pripade skoci za posledni tag automaticky, neni treba nic posouvat } } range.select(); } //unset promenych delete selectionStart; delete selectionEnd; } function getTextareaSelectionsm() { var textarea = document.forms["diskuse"].elements["message"]; if (typeof textarea.selectionStart != 'undefined') { var selection = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd); } else if (typeof document.selection != 'undefined') { var selection = document.selection.createRange().text; } else { //alert('Bug!'); } return selection; } Formulář můžeš jakkoliv stylovat, ale je nezbytné, aby se stále textarea a form jmenovali tak, jak je uvedeno v příkladu. |
||
shakal Profil * |
#8 · Zasláno: 17. 10. 2009, 16:47:52
Zkoušel jsem to přesně tvých nápověd, za které děkuji. Hodím se celej kód jak to mám napsaný.
<form id="formular" name="book" action="diskuse_presmerovani.php" method="post" onsubmit="return book_test();"> <b>Jméno: <?php session_start(); // startujeme session. Všimněte si, že tento kód je úplně nahoře před jakýmkolik výstupem. if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){ echo "<font color=violet>".$_SESSION['login'] . "</font>"; }else{ echo ""; } ?> </b><br> <input type="hidden" name="name" size="20" value=" <?php session_start(); // startujeme session. Všimněte si, že tento kód je úplně nahoře před jakýmkolik výstupem. if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){ echo "".$_SESSION['login'] . ""; }else{ echo ""; } ?> " > Vlož kliknutím smajlíka do zprávy: <img onlick="insertsm(':-)');return false;" src="1.gif" /> <br> <br> </head> <body> <!---<b>Mail:</b><br> <input name="mail" size="20"><br> <br>--> <b>Zpráva:</b><br> <textarea name="message" rows="5" cols="30"></textarea> <br> <input type="submit" value="Odeslat zprávu"> <style> function insertsm(tag, parovy, text, prependText, appendText) { //inicializace proměných var textarea = document.forms["book"].elements["message"]; var startTag = tag; var endTag = ''; if (typeof text == 'undefined') { var tagText = getTextareaSelectionsm(); } else { var tagText = text; } if (typeof parovy == 'undefined') { var parovy = true; } if (typeof prependText == 'undefined') { var prependText = ''; } if (typeof appendText == 'undefined') { var appendText = ''; } //přepsání výchozích hodnot pro specifické tagy if (tag == 'url') { if (tagText == '') { tagText = 'Odkaz'; } var regexp = new RegExp("^((http|https|ftp)\\://)([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$"); var regexp2 = new RegExp("^([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|www\\.([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$"); if (regexp.test(tagText)) { startTag = '[url=' + tagText + ']'; } else if (regexp2.test(tagText)) { startTag = '[url=http://' + tagText + ']'; } else { startTag = '[url=http://example.com]'; selectionStart = prependText.length + 5; selectionEnd = prependText.length + 23; } } //vytvoření textu pro vložení if (!parovy) { endTag = ''; } var text2insert = prependText + startTag + tagText + endTag + appendText; //vložení: textarea.focus(); if (typeof textarea.selectionStart != 'undefined') { var start = textarea.selectionStart; var end = textarea.selectionEnd; textarea.value = textarea.value.substr(0, start) + text2insert + textarea.value.substr(end); //nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') { textarea.selectionStart = start + selectionStart; textarea.selectionEnd = start + selectionEnd; } else { if (tagText == '') { //skoceni mezi tagy textarea.selectionStart = start + prependText.length + startTag.length; textarea.selectionEnd = start + prependText.length + startTag.length; } else { //skoceni za posledni tag textarea.selectionStart = start + text2insert.length; textarea.selectionEnd = start + text2insert.length; } } } else if (typeof document.selection != 'undefined') { var range = document.selection.createRange(); range.text = text2insert; //nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') { range.moveStart('character', -text2insert.length + selectionStart); range.moveEnd('character', -text2insert.length + selectionEnd); } else { if (tagText == '') { //skoceni mezi tagy range.move('character', -(endTag.length + appendText.length)); } else { //skoceni za posledni tag //protoze prohlizec v tomto pripade skoci za posledni tag automaticky, neni treba nic posouvat } } range.select(); } //unset promenych delete selectionStart; delete selectionEnd; } function getTextareaSelectionsm() { var textarea = document.forms["book"].elements["message"]; if (typeof textarea.selectionStart != 'undefined') { var selection = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd); } else if (typeof document.selection != 'undefined') { var selection = document.selection.createRange().text; } else { //alert('Bug!'); } return selection; } </style> |
||
shakal Profil * |
#9 · Zasláno: 17. 10. 2009, 16:49:29
Při kliknutí na smajlíka (1.gif) se ve formuláři nic neobjeví.
|
||
Radek9 Profil |
#10 · Zasláno: 17. 10. 2009, 16:53:43
shakal:
„<img onlick="insertsm(':-)');return false;" src="1.gif" />“ <img onClick="insertsm(':-)');return false;" src="1.gif" /> |
||
MCKAY Profil |
#11 · Zasláno: 17. 10. 2009, 16:55:57 · Upravil/a: MCKAY
shakal:
Vkládej kód do . Mám takový dojem, že start session není před jakýmkoliv výstupem. Je na čase vymyslet něco jednoduššího. <script type="text/javascript"> <!-- function insertsmajl(text){ document.getElementById('diskuse').value = document.getElementById('diskuse').value+text; } --> </script> <form id="diskuse" action=""> <img src="1.gif" onclick="insertsmajl(':-)')" alt="BBSMajl" /> <textarea id="diskuse"></textarea> </form> Řekl bych, že to bude značně jednodušší na implementaci. Nebude to tolik chytré, ale postačí to. |
||
camo Profil * |
#12 · Zasláno: 17. 10. 2009, 16:56:41
Sorry, že sa do toho pletiem, ale ak je to možné poraďte aj mne. Ja nechápem, načo je pri function insertsm(...), taký dlhý argument. Veď funkcii sa predáva pri onclicku len ´:-)´?
Inak povedané načo sú tam tie slová (tag, parovy, text, prependText, appendText)? Nechápem ich význam. Chápem, že neni nikto povinný, mi to vysvetľovať, ale ak je to možné, tak majte zľutovanie, chcel by som to pochopiť? Ja zatiaľ chápem z JS len to, že ak onclick predá funkcii dajme-tomu hodnotu 5 a ak tá je definovaná ako function F (cislo) function insertsm(tag, parovy, text, prependText, appendText) var startTag = tag; |
||
MCKAY Profil |
#13 · Zasláno: 17. 10. 2009, 17:00:08
camo:
Ten skript je přepsaný tzv. Jush, já v javascriptu neumím zhola nic :-). Jen jsem si trochu hrál a selským rozumem to upravil, myslím, že je nejvyšší čas zmínit, že je tam určitě pár argumentů k ničemu. Jinak se omlouvám, blbe mi na klávesnii céčko a občas ho tam zapomenu vypsat, viz onlick..:-) |
||
camo Profil * |
#14 · Zasláno: 17. 10. 2009, 17:04:47
Potom je to ale aj tak slušnú výkon, len tak sa hrať s takýmto kódom a ešte to aj funguje. to ja si ešte zrejme počkám.
|
||
shakal Profil * |
#15 · Zasláno: 17. 10. 2009, 17:06:37
MCKAY
Ani rvůj script mi nejde. Tady je kód <form id="formular" name="book" action="diskuse_presmerovani.php" method="post" onsubmit="return book_test();"> <b>Jméno: <?php session_start(); // startujeme session. Všimněte si, že tento kód je úplně nahoře před jakýmkolik výstupem. if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){ echo "<font color=violet>".$_SESSION['login'] . "</font>"; }else{ echo ""; } ?> </b><br> <input type="hidden" name="name" size="20" value=" <?php session_start(); if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){ echo "".$_SESSION['login'] . ""; }else{ echo ""; } ?>" > <script type="text/javascript"> <!-- function insertsmajl(text){ document.getElementById('book').value = document.getElementById('formular').value+text; } --> </script> Vlož kliknutím smajlíka do zprávy: <img src="1.gif" onclick="insertsmajl(':-)')" alt="BBSMajl" /> <br> <br> </head> <body> <!---<b>Mail:</b><br> <input name="mail" size="20"><br> <br>--> <b>Zpráva:</b><br> <textarea name="message" rows="5" cols="30"></textarea> <br> <input type="submit" value="Odeslat zprávu"> |
||
camo Profil * |
#16 · Zasláno: 17. 10. 2009, 17:08:48
Dajte mu to niekto do
pre tagu |
||
shakal Profil * |
#17 · Zasláno: 17. 10. 2009, 17:11:15
<form id="formular" name="book" action="diskuse_presmerovani.php" method="post" onsubmit="return book_test();"> <b>Jméno: <?php session_start(); // startujeme session. Všimněte si, že tento kód je úplně nahoře před jakýmkolik výstupem. if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){ echo "<font color=violet>".$_SESSION['login'] . "</font>"; }else{ echo ""; } ?> </b><br> <input type="hidden" name="name" size="20" value=" <?php session_start(); if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){ echo "".$_SESSION['login'] . ""; }else{ echo ""; } ?>" > <script type="text/javascript"> <!-- function insertsmajl(text){ document.getElementById('book').value = document.getElementById('formular').value+text; } --> </script> Vlož kliknutím smajlíka do zprávy: <img src="1.gif" onclick="insertsmajl(':-)')" alt="BBSMajl" /> <br> <br> </head> <body> <!---<b>Mail:</b><br> <input name="mail" size="20"><br> <br>--> <b>Zpráva:</b><br> <textarea name="message" rows="5" cols="30"></textarea> <br> <input type="submit" value="Odeslat zprávu"> |
||
camo Profil * |
#18 · Zasláno: 17. 10. 2009, 17:13:45
ale to je to isé, len v zelenom (:-DDDDDD
|
||
shakal Profil * |
#19 · Zasláno: 17. 10. 2009, 17:15:03
Sakra, aha :D
A jak se to háže do toho pre tagu? |
||
camo Profil * |
#20 · Zasláno: 17. 10. 2009, 17:18:28
ale nechceš ty náhodou vkladať smaila do id="mesage" a nie do id="formular"?
|
||
shakal Profil * |
#21 · Zasláno: 17. 10. 2009, 17:21:52
Ano, potřebuju do message dostat kliknutím na smajlíka 1.gif toto ":-)"
čili já kliknu na smajlíka a v poli message se objeví například ":-)" nebo ":-(" - podle toho na jakýho kliknu ;) |
||
MCKAY Profil |
#22 · Zasláno: 17. 10. 2009, 17:23:55
shakal:
Hele chlape, potřebuješ to mít celé za prvé v tagu <form> a za druhé to textarea musí mít ID takže se nediv že ti to nechodí správně <script type="text/javascript"> <!-- function insertsmajl(text){ document.getElementById('message').value = document.getElementById('message').value+text; } --> </script> Vlož kliknutím smajlíka do zprávy: <img src="1.gif" onclick="insertsmajl(':-)')" alt="BBSMajl" /> <br> <br> </head> <body> <form name="book" action=""> <!---<b>Mail:</b><br> <input name="mail" size="20"><br> <br>--> <b>Zpráva:</b><br> <textarea id="message" rows="5" cols="30"></textarea> <br> <input type="submit" value="Odeslat zprávu"> </form> Tohle je podstatná část tvého kódu, phpko jsem z toho odmazal, protože je špatně, a plete se. Už mě to přestává bavit. |
||
camo Profil * |
#23 · Zasláno: 17. 10. 2009, 17:24:07
No a tu ti chýbajú úvodzovky
<input type="hidden" name="name" size="20" value=" |
||
GeneralDv Profil |
#24 · Zasláno: 17. 10. 2009, 17:31:44
Tady jsem vyhrabal něco 100× jednoduššího:
<script> function pridejSmajlik(smilie){ document.gbook.text.focus(); document.gbook.text.value += smilie + " "; document.gbook.text.focus(); } </script> <form name="gbook" action="" method="post"> <textarea name="text" rows="10" cols="50"></textarea> </form> <a href="javascript:pridejSmajlik(':D')"><img src="smajlik1.gif" alt=":D"></a> <a href="javascript:pridejSmajlik('xD')"><img src="smajlik1.gif" alt="xD"></a> <a href="javascript:pridejSmajlik('xP')"><img src="smajlik1.gif" alt="xP"></a> <a href="javascript:pridejSmajlik(':P')"><img src="smajlik1.gif" alt=":P"></a> <a href="javascript:pridejSmajlik(':)')"><img src="smajlik1.gif" alt=":)"></a> |
||
camo Profil * |
#25 · Zasláno: 17. 10. 2009, 17:35:40
no ale ty vo funkcii predávaš onClick formuláru a nie tagu textarea, ktorý musí mať name. Tag form nemá pokiaľ viem value, majú ho iba jeho potomci, v tvojom prípade textarea.
function insertsmajl(text){ document.getElementById('book').value = document.getElementById('formular').value+text; function insertsmile(smile){ document.getElementById(´message').innerhtml = smile } Toto by sa malo odohrať na úrovni JavaScriptu, čo už potom pošleš PHP a ako to tam spracuješ, to sem myslím nepatrí. |
||
Radek9 Profil |
#26 · Zasláno: 17. 10. 2009, 17:43:09
camo:
Textarea nemá innerHTML, ale value. Jinak. Všichni tady pletete všechno dohromady. Aby šla textare odeslat, musí být obalena ve <form>u! A potom není problém oboum nastavit name. function insertsmajl(smajl){ document.name_formu.name_textarey.value += smajl+" "; } |
||
MCKAY Profil |
#27 · Zasláno: 17. 10. 2009, 17:46:22
Radek9:
Existuje nevalidní způsob jak odeslat textareu bez <form>u, ale podporuje to jen chytrý prohlížeč. <input type="submit" action=".." />, osobně nejsem ale zastáncem takové prasárny..:-) |
||
camo Profil * |
#28 · Zasláno: 17. 10. 2009, 17:48:06
Radek
No tak som zase múdrejší a ospravedlňujem sa, že to pletiem. No a ty samozrejme chceš aby sa smile zobrazil tam kde chceš ty a potom treba robiť s tým value+text, ale to si už netrúfam riešiť. takže 1.doplň si tam ten form 2. úvodzovky 3. nepredávaj to formuláru, ale tomu message. |
||
camo Profil * |
#29 · Zasláno: 17. 10. 2009, 17:51:52
Shakal
Radek tomu tu asi rozumie najlepšie, takže si tu funkciu prepíš tak ako napísal a snáď to bude fungovať. function insertsmajl(smajl){ document.name_formu.name_textarey.value += smajl+" "; } |
||
camo Profil * |
#30 · Zasláno: 17. 10. 2009, 19:05:52
Radek
Len taká otázočka - cez getElementById alebo tagName sa ku tej textaree dostať nedá? |
||
Téma pokračuje na další straně.
|
0