Autor Zpráva
Petr-K
Profil *
Ahoj všem,
víc než poradit bych dnes potřeboval malou pomoc, teda pokud by se našla nějaká dobrá duše.
JS jsem se bohužel nikdy pořádně nenaučil a ani se mi nepodařilo najít vhodný příklad ze kterého bych čerpal.

Jak mohu vytisknout text z elementu textarea aniž by předcházela nějaká mezistránka?

Děkuji.
zdenek
Profil
Petr-K:

jako takhle?

<?php

if (isset($_POST['ok'])) { // jestli byl formular odeslan
	echo $_POST['obsah']; //zobraz napsany obsah
}

else { //jinak zobraz formular s textarea
	?>
	
	<form method="POST">
	<textarea name="obsah">Sem zadejte text</textarea>
	<input type="submit" name="ok">
	</form>
	
	
<?php
	
}



?>



EDIT: až moc pozdě jsem si všiml, že vy to chcete v javascriptu. Omlouvám se.
Petr-K
Profil *
zdenek:
Děkuji za snahu, ale odeslání formuláře je to nejmenší :)

Asi jsem svůj původní dotaz napsal ne zcela přesně. Měl jsem namysli, poslat obsah elementu textarea do tiskárny a fyzicky ho vytisknout.
_es
Profil
Petr-K:
Měl jsem namysli, poslat obsah elementu textarea do tiskárny a fyzicky ho vytisknout.
Nastav štýl pre tlač tak, aby sa tlačila len tá textarea a zavolaj metódu print.
Yuhů
Profil
Petře, máš pocit, že se ten obsah elementu textarea nevytiskne? Moje pokusy říkají, že se textarea tiskne i s tím obsahem, který v ní je (ve všech prohlížečích). Pokud jde o to vytisknout jenom ten obsah, tak rada od _es je správná.
Petr-K
Profil *
_es:
Ano tímto způsobem to mám momentálně vytvořené. Problém je v tom, že text, který se vkládá do elementu textarea může být větší než rozměry samotného elementu (posuvníkem si jej mohu přečíst celý). Tzn. že se nevytiskne všechen text, ale jen první řádky, které se do pole vejdou.

Yuhů:
Zkoušel si tisknout i text, který přesahuje rozměry nastaveného elementu? (viz. zpráva pro _es)
_es
Profil
Petr-K:
že se nevytiskne všechen text, ale jen první řádky, které se do pole vejdou.

Môžeš predsa nastaviť iné rozmery textarey pre tlač a iné pre zobrazenie na monitore.
Petr-K
Profil *
_es:
to sice mohu udělat, ale nevím jak zajistím, aby se textarea automaticky zvětšila podle velikosti textu. Rozsah textu v elementu není omezen a ve stylu pro tisk nechci uvádět natvrdo bůh ví jak velikou velikost (při tisku jedné řádky by pak z tiskárny vylezlo x dalších prázdných stránek).
1Pupik1989
Profil
Pro tisk bych přeměnil Textareu na Div s plovoucí výškou nebo jí skryl a vytvořil nový Div na stenjém místě.
Petr-K
Profil *
1Pupik1989:
Jak to myslíš přeměnil?
1Pupik1989
Profil
Skryl bych Textareu a na její místo bych dal div.
Petr-K
Profil *
Teď si připadám hodně natvrdle.. :) Můžeš mi sem hodit jen náčrt jak to myslíš?

Pro upřesnění doplňuji:
- textarea je součástí formuláře kam uživatel píše text (pozn. tím textem jsou SQL dotazy, které dále zpracovávám a vyhodnocuji - vše pro studijní účely do školy)
- vytisknout se má pouze obsah elementu textarea aniž by se musel formulář odeslat
- nechci to řešit způsobem, kdy obsah elementu vypíšu na jiné stránce a tu pak budu tisknout, rád bych našel způsob jak ihned tisknout obsah elementu
_es
Profil
Petr-K:
náčrt jak to myslíš?

Myslí to tak, že do dokumentu dynamicky pridáš DIV, do neho skopíruješ obsah textarey a ten DIV dáš potom vytlačiť.
Chamurappi
Profil
Reaguji na Petra-K:
Nebo také jde zjistit výšku obsahu elementu <textarea> a pak podle zjištěného rozměru přenastavit pevně danou výšku. Zdroj inspirace: Automatická velikost textarey podle délky textu
1Pupik1989
Profil
Petr-K:
Teď si připadám hodně natvrdle.. :) Můžeš mi sem hodit jen náčrt jak to myslíš?

Tak jsem udělal honem Ukázku
Chamurappi
Profil
Reaguji na 1Pupika1989:
Hm, což takhle se nejprve naučit JavaScript? Kde máš var? Proč nastavuješ hodnotu z formulářového pole jako HTML kód a ne jako prostý text? Proč se dotazuješ prohlížeče na vypočítaný styl vlastnosti display, když si můžeš stav jednoduše pamatovat? Proč skriptem ošetřuješ vyvolání funkce po načtení stránky, když ji můžeš mnohem jednodušeji vyvolat po načtení příslušných elementů?

Krom toho bys možná měl změnit hosting, domény toho spammera, jehož reklamní banner ti visí v ukázce, zde mají permanentní ban.
1Pupik1989
Profil
To měla být ukázka, jak to zhruba bude vypadat, ne hotový příklad, na to je málo času.
Chamurappi
Profil
Reaguji na 1Pupika1989:
Ukázka, ve které je v podstatě všechno kromě již slovně popsaného principu špatně.
1Pupik1989
Profil
Ale mě je fuk co tam je špatně, dělá to co jsem chtěl. Navíc nikde to asi nepoužiji a když už, tak to napíšu znovu. Tohle je nápad, mám se rozepisovat jaký je rozdíl mezi nápadem a hotovou věcí?
Chamurappi
Profil
Reaguji na 1Pupika1989:
mám se rozepisovat jaký je rozdíl mezi nápadem a hotovou věcí?
Na to je málo času, ne? :-)
Tohle byl nápad. Lepší žádný příklad, než příklad se začátečnickými chybami.

dělá to co jsem chtěl
Scucne to víceřádkový text z <textarea> do jednoho řádku.
1Pupik1989
Profil
Je to lepší? Aby si měl klid v duši :)
joe
Profil
1Pupik1989:
Co když tam bude TAB?
1Pupik1989
Profil
S čím jsem nepočítal, takže jsem to pro jistotu hodil do tagu pre.
Petr-K
Profil *
Pánové, děkuji za vaše příspěvky.

1Pupik1989:
Tvou ukázku jsem pochopil, nicméně ji nepoužiji, ale i tak díky.

Chamurappi:
To zvětšování velikosti je pěkné, už jsem něco podobného zkoušel pomocí jQuery (plugin autoResize). V IE mi to bohužel nekoordinovaně skákalo (zvětšovalo - zmenšovalo) po přidání nového znaku. Stejný problém prý je i s Tvým řešením, takže jsem ho ani nezkoušel... promiň... Bohužel, neumím JS moc dobře opravit. :(

Jak jsem na psal (i na úvod vlákna)... JS neovládám, takže jsem myslel, že už někdo něco podobného někdo řešil a je k dispozici nějaký hotový scriptík. Prozatím jsem to vyřešil tak, že před tiskem vypíšu element na jinou stránku, kterou následně vytisknu. Sice jsem se této mezistránky chtěl vyvarovat, ale co se dá dělat, jako provizorní řešení OK - snad přijdu brzo na něco jiného. Kdyby někoho něco napadlo a přihodil to sem, budu rád.
Ještě jednou vám moc děkuji za účast ve vlákně.
Petr
1Pupik1989
Profil
Tak máš pár možností, třeba Resize textarea (tahem myší) nebo Autogrow plugin (automaticky při psaní)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: