Autor | Zpráva | ||
---|---|---|---|
lionel messi Profil |
#1 · Zasláno: 30. 1. 2015, 19:17:10
Zdravím,
na webe mám kalkulačku riešenú nasledovným spôsobom: Živá ukázka (nesúvisiace časti odmazané). Môj problém je nasledovný: V rámci e-mailovej komunikácie návštevníci údaje zadané z kalkulačky často kopírujú. Hoci po spočítaní pod formulár (v PHP) vypíšem informáciu o názve produktu a počte kusov, niektorí užívatelia neskopírujú túto časť, ale vrchnú, teda názov produktu a hodnotu s inputov. Na niektorých mailoch (Gmail) sa prvok skopíruje ako input s hodnotou, ktorá však ide meniť, navyše, na niektorých sa hodnota neprekopíruje vôbec a mailom dorazí niečo takéto: Lorem ks Ipsum ks .
Potreboval by som preto dosiahnuť, aby sa pri označovaní danej položky <label> formulára označila aj hodnota v inpute tak, aby nevznikal problém pri použití „copy–paste“. Bohužiaľ moje znalosti JavaScriptu (úplné základy syntaxe) na to nestačia a preto by som chcel požiadať o nasmerovanie. Zároveň by ma zaujímala spoľahlivosť tohto riešenia (inak povedané, približne aká veľká časť návštevníkov prezerá stránky s vypnutými skriptmi). Pripraviť alternatívu pre vypnutý JS by nemal byť až taký veľký problém (vypísať informácie do <textarea> ).
Ďakujem veľmi pekne za odpoveď. |
||
Keeehi Profil |
#2 · Zasláno: 30. 1. 2015, 20:52:38
lionel messi:
Dovolil bych si navrhnout workaround. Nedal by se ten formulář podruhé už nevypisovat? $showForm = true; if ( /* dostal jsem od uživatele data */ ) { // zpracovávám data if ( /* zpracování proběhlo ok */ ) { $showForm = false; } } if ($showForm) { // <form> ... } else { echo "Díky za odeslání formuláře. Tady je to, co jsem vypočítal"; echo "Lorem $loremPcs ks Ipsum $ipsimPCS ks"; echo "Toto si okopírujte a pošlete mi to na mail" } Ještě technická - Proč ti to mají posílat emailem, když už ta data jednou máš? |
||
lionel messi Profil |
#3 · Zasláno: 30. 1. 2015, 21:17:15
Keeehi:
Vďaka za pristavenie. „Nedal by se ten formulář podruhé už nevypisovat?“ Aj to by samozrejme bola jedna z možností (pre mňa) nenáročná na prevedenie, vidím tam však možný problém. Ak sa návštevník bude chcieť vrátiť a zmeniť zadané údaje, bolo by to veľmi otravné. „Ještě technická - Proč ti to mají posílat emailem, když už ta data jednou máš?“ Lebo je to celé o niečo zložitejšie. Prácu s MySQL mám celkom solídne zvládnutú, ale ukladanie každého vstupu by viedlo k obsiahlej tabuľke s množstvom riadkov, v ktorej by bolo pramálo užitočných údajov. Odosielanie akýchkoľvek dát na mail nie je podmienkou použitia kalkulačky a naopak. Používa ju značné percento návštevníkov a len málo z nich sa rozhodne napísať mail, navyše so skopírovanými údajmi, čo však vedie ku vzniku komunikačného šumu (je nutné zistiť, čo malo byť skutočným obsahom mailu). Iste, pridať ďalšie pole v štýle „Spracovať výsledok a odoslať ho na mail“ je záležitosť chvíľky, ja však tentoraz neprogramujem e-mailový formulár, ale kalkulačku a potrebujem ju udržať od mailu ako úplne nezávislú entitu. K riešeniu pôvodného problému: Podarilo sa mi vďaka niekoľkým návodom dosiahnuť istý pokrok a obsah políčka označiť. Nepríjemné je však, že po nájdení myšou na input sa síce obsah inputu označí, ale zároveň sa odznačí akýkoľvek predtým označený text. Živá ukážka aktuálneho kódu. |
||
Keeehi Profil |
lionel messi:
Ta živá ukázka se musí uložit. Je tam na to tlačítko. Takto my nic nevidíme. Samozřejmě pokud se jedná jen o kalkulačku, tak je to v pořádku. Mě to z toho popisu spíš přišlo jak špatně navržený objednávkový formulář. |
||
lionel messi Profil |
#5 · Zasláno: 30. 1. 2015, 21:33:00
|
||
Chamurappi Profil |
#6 · Zasláno: 30. 1. 2015, 21:46:47
Reaguji na lionela messiho:
Šlo by mít v místě, kde jsou <input> y, jen obyčejné <span> y, do nichž by se kopírovala hodnota <input> ů při změně a které by byly těmi <input> y překryté. Když by chtěl uživatel označit celou větu, označil by jen text s kopiemi value , protože označování se řídí pořadím v kódu (respektive v DOMu) a ne tím, co je kde vidět.
„približne aká veľká časť návštevníkov prezerá stránky s vypnutými skriptmi“ Obvykle se mluví o číslu kolem jednoho procenta. Není snadné to změřit přesně. |
||
Keeehi Profil |
lionel messi:
A co takto: Živá ukázka 1) Formulář je defaulně skrytý, takže uživatel je "nucen" kopírovat textovou informaci. 2) Než jsem to stihl dodělat, tak už to Chamurappi popsal, aspoň máte kostru implemenace. EDIT: zase jsem zapomněl upozornit na to, že pro účely rychlého vytvoření ukázky jsem použil jQuery takže tento příklad nemusí správně fungovat ve starších prohlížečích. Nezapomeň si tedy zkontolovat podporu v prohlížečích které chceš podporovat, případně to upravit, aby to fungovalo i v nich. Nicméně CSS o které ti šlo asi přředevším by mělo být funkční i v hodně starých prohlížečích. |
||
Chamurappi Profil |
#8 · Zasláno: 30. 1. 2015, 23:09:25
Reaguji na Keeehiho:
Tvá ukázka nefunguje ve starším Exploreru (nejspíš proto, že používáš hloupou verzi jQuery). „tak už to Chamurappi popsal, aspoň máte kostru implemenace“ Já popsal něco jiného. Mé řešení skoro nepoužívá JS (stačí onchange="něco.innerHTML = this.value" ) a funguje víceméně všude.
|
||
Časová prodleva: 9 let
|
0