TextArea

mám Form typu textarea,jak do něho jednoduše pomocí buttonu vložím určený text. (například <br>)
CHOD S TíM NEKAM , vždyť to je jednoduché...
daredevil > bohužel ne každý se rodí už s tím, že ovládá HTML, CSS, PHP, JS,.... levou zadní.
Jsou i lidi, kteří se to musí teprve učit, víš. To jen ty jsi měl takové velké štěstí.

Majkee > specifikuj trochu blíže svůj požadavek prosím ať se nepíšu s radou abych pak zjistil že jsem jen tu otázku špatně pochopil.
(Např. má se tím vkládaným textem nahradit celý obsah pole nebo se má přidat na konec / na místo kurzoru ......?)

<head>
<script type="text/javascript">
function vloz()
{
document.getElementById('form').textarea_jmeno.value += "<br>";
]
</script>
</head>

<body>
<form id="form">
<textarea name="textarea_jmeno"></textarea>
<button onclick="vloz()">Novy radek</button>
<form>
</body>



Asi tak bych to slo ... Doufam, ze to takhle bude fungovat ... Psal jsem to z hlavy takze nevim, ale jo melo by to jit ...
S dovolením pár úprav/oprav aby to fungovalo:

<head>
<script type="text/javascript">
function vloz()
{
document.getElementById('form').textarea_jmeno.value += "<br>";
}
</script>
</head>

<body>
<form id="form">
<textarea name="textarea_jmeno"></textarea>
<button onclick="vloz(); return false;">Novy radek</button>
</form>
</body>
Mno ja k tomu taky neco mam

1) kdyz kliknu na vlozit novy radek tak to sice hodi tag <BR> nicmene abych mohl pokracovat v psani zpravy musim znovu klepnouti do Textarea. Nejde se toho zbavit?

2) Kdyz osetrim v PHPku vstup pres addslashes, a pridelam si tucne pismo, kurzivu .... tak jak to spraviti aby to fungovalo? Regularni vyrazy?
1) V JS se dá nastavit objektu focus zavoláním jmenoobjektu.focus();
2) To jsem docela nepochopil. Na co se vlastně ptáš?
2) jj, pres reg. vyrazy, vlastne ne ... ja to mam takhle (klasicke tagy se zmeni na entiny a hranate zavorky na tagy ... ted me napadlo, ze to asi neni nejmoudrejsi (nenapises [,]))

$vzkaz = $_POST['vzkaz'];

// ODSTRANIME TAGY
$prevod = ERegI_Replace ("\\<","<",$vzkaz);
$prevod = ERegI_Replace ("\\>",">",$prevod);
// HRANATE ZAVORKY PREVEDEME NA TAGY
$prevod = ERegI_Replace ("\\[","<",$prevod);
$prevod = ERegI_Replace ("\\]",">",$prevod);

echo ($prevod);
vy ste aleeeeeeeeeeeeeeeeeeeeeeeee

kouknete sa na jeho web , je to : (---.dialup.iol.cz)


tenhle web už byl ´tady registrován pred 20 lety a píšete zbytočne . tak isto to je aj pri príspevku o najelpšom editory.nekdo si s vás urobil srrandu že došiel až nakoniec fora a vybral ten príspevok ,......
vzdyt to pochopte , jeste vam tu neodpovedel !
Tak ti pěkně děkuji daredevile. Nevím proč tomuhle nějak moderátoři nezabrání (Richarde?).
Já jsem si vůbec data prvního příspěvku nevšiml (05. 01. 2004 19:24). Pochopitelně že po více než roce už asi odpověď neočekává.

:-(((((
Mamlas diky. Nicmene tam mas chybu.

>> // ODSTRANIME TAGY
$prevod = ERegI_Replace ("\\<","<",$vzkaz);
$prevod = ERegI_Replace ("\\>",">",$prevod);



tohle to ti na entitu neprevede, vysledek je stale stejny. Takze je lepsi pridat do POSTnuteho vzkazu HTMLSPECIALCHARS(); a funguje to pak bezproblemu.

Btw. v JS sem fakt nicka, muzete mi sem napsat , resp. rozepsat TOMUV skript s focusem aby se mi po kliknuti na tag vracel kurzor do textarey kde sem prestal psat?
23k:
jo jasne, v tom zdroji to mam normalne zapsany jako entitu (pomoci toho ampersandu - bo jak se to jmenuje), proste jsem si neuvedomil, ze se to tady prevede ...

Nevim, ale pokud bys tam dal HTMLSpecialChars (); tak ty dva radky ztraci smysl, ze jo ... Vim, ze jsem tam tu funkci mel, ale nejak si nemuzu vzpomenout proc jsem ji vyhodil ...

Jinak, nevis jakej je rozdil mezi fci a jazykovym konstruktem?

melo by to bejt takhle:
<head>
<script type="text/javascript">
function vloz()
{
document.getElementById('form').textarea_jmeno.value += "<br>";
document.getElementById('form').textarea_jmeno.focus()
}
</script>
</head>

<body>
<form id="form">
<textarea name="textarea_jmeno"></textarea>
<button onclick="vloz(); return false;">Novy radek</button>
</form>
</body>
>> Nevim, ale pokud bys tam dal HTMLSpecialChars (); tak ty dva radky ztraci smysl, ze jo


neztraci. Musis ji ale logicky umistit pred ty prevodne radky TJ. =>

$vzkaz = htmlspecialchars($_POST["vzkaz"]);
a pak EREG... a facha to. Zkousel sem to.


>> Jinak, nevis jakej je rozdil mezi fci a jazykovym konstruktem?

sorrac nevim, phpko se pilne ucim ale tot nevim :)
Mamlasi jeste maly dotaz -> funkcni ukazku mam na http://www.rjwebdesign.net/demo/js-vzkaz/index2.php

a zdrojak http://www.rjwebdesign.net/demo/js-vzkaz/file.txt ( zobrazit zdrojak, cte to jako htmlko :/)

Kdyz pridam vic tlacitek tak to mam provadet tak jak to zatim mam?

Jeste bych rad poupravil pokud vlozim parovy tag aby se mi kurzor nevracel na konec ael doprostred TJ.

NE TAKTO [b][/b] | kurzor ale b] |KURZOR [/b]

DIX
23k: pokud pouzijes tu fci HTMLSpecialChars(); tak ztraci ty dva radky smysl, protoze ti ty znaky < > prevede na & lt; & gt; (samozrejme bez mezer) ... ty dva radky jak jsem tam napsal maji bejt takhle:

$prevod = ERegI_Replace ("\\<","& lt;",$vzkaz);
$prevod = ERegI_Replace ("\\>","& gt;",$prevod);

je to vlastne takova nahrada toho HTMLSpecialChars();

snad jsem to moc nezamotal :/

jj, pridanim tlacitka pridas proste dalsi vlozX();
jak vkladas to <br> tak si tam dej taky ty hranaty zavorky, protoze kdyz am nechas ty klasicky tagy, tak se ti to pomoci onech zminech reg. vyrazu prevede na entity

jak nastavit kurzor doprostred:
to ti z hlavy nereknu, ale taky jsem se tu na to ptal. To tu nekde bude ... je to neco s *selection.createRange()* a *TextRange* .... takhle z hlavy nevim, ani to nemam napsany, sorry

- omlouvam se, jestli jsem to napsal nejak moc zamotane
Jeste me napadlo kazdou fci rozdelit na dve
function vlozX_zacatek()
{
document.getElementById('form').vzkaz.value += "[b]";
document.getElementById('form').vzkaz.focus()
}

function vlozX_konec()
{
document.getElementById('form').vzkaz.value += "[/b]";
document.getElementById('form').vzkaz.focus()
}