[ pakito @ 29.08.2017. 14:26 ] @
Prilikom analize teksta u kartici reči on-line leksikona, često se nametne potreba da se o nekoj reči sazna više, pa sam ugradio js funkciju koja preko ondblclick uzima uzorak i izlista sve tekstove u leksikonu koji taj uzorak sadrže. Uzorak definišu praznine između reči, pa se tako zacrni samo jedna cela reč kada se bilo gde na nju klikne. Dakle, to nije problem. Problem nastaje kada se javi potreba da se uzme deo reči ili grupa reči, tada cela operacija sadrži 7 koraka, koje delom idu preko desnog dugmeta na mišu:

1 – željeni uzorak se mišom zacrnjuje levim dugmetom miša
2 – desnim klikom miša dobija se padajući meni sa stavkama
3 – sa menija se klikom odabere stavka „copy“
4 – miš se pozicionira u polje forme za pretragu
5 – desnim klikom se pozove padajući meni
6 – sa pad. menija klikom se odabere stavka „paste“ i uzorak ubacuje u polje za pretragu
7 – klik na dugme „traži“ pokreće se listanje …

Želeo bih da ovu proceduru prepolovim i svedem na 4-5 stavke, tako što će se odmah posle 3. stavke klikom izabrani uzorak direktno prebaciti u stavku 7, odnosno da se uzorak automatski unese u polje za pretragu.

Jasan mi je algoritam, ali bi mi trebalo barem par nedelja guglanja, učenja i eksperimentisanja da ga isprogramiram, ali toliko učenje za samo jednokratnu upotrebu i programerima sluhistima dođe kao preveliki luksuz, pa sam odlučio da zatražim „pomoć prijatelja“, i to tamo gde se ona nesebično daje.

http://www.paundurlic.com/vlaski.recnik/celarec.php?id=4258
[ dakipro @ 29.08.2017. 14:42 ] @
Copy - Paste ne moze da se uradi u php-u jer je "clipboard" koncept poznat samo web klijentu (tacnije operativnom sistemu).
Ali to sto si zamislio moze jos lakse da se uradi ja mislim koristeci plain javascript, recimo prvi rezultat google pretrage za Google: "javascript search selected word" daje recimo https://stackoverflow.com/ques...-the-highlighted-selected-text
Tu odmah u "Run code snippet" mozes da testiras da li je to to sto si zamislio
[ pakito @ 29.08.2017. 15:04 ] @
Jasno je meni da operacija sa clipboardom ne može da se izvede direktno ili striktno u PHP, ali PHP je okvir za JS, jQuery Ajax i slične oblasti pa sam zato pitanje postavio u PHP.
Naravno da sam video razne primere naročito u JS (gde ima i poseban Clipboard.js), ali je problem što sve to - za nižu klasu programera kojoj sluhisti pripadaju -traži toliko mnogo učenja i eksperimentisanja koje u odnosu na 2-3 sekunde koje bi se uštedelo rešenjem, zbilja izgleda kao rasipanje vremena! A toga je kod mene sve manje imanje ... A u vezi sa tvojom sugestijom odovor je: "Da, to je to!"

PS. Taman sam pomislio da digme ruke i odem na pivce preko puta, a ono ... :)
[ pakito @ 29.08.2017. 15:40 ] @
Gospo'n Dalibore!
Ne mogu da verujem koliko je rešenje prosto, i sadrži samo jednu majstorski izrađenu funkciju!
Pivce koje pijem sa ogromnim zadovoljstvom pijem (i) u tvoje zdravlje! :)
[ pakito @ 29.08.2017. 16:39 ] @
Pošto nikad u glavi jednoga sluhiste nije bio težeg problema, a nikad na ES nije bilo bržeg i lakšeg rešenja, sa ogromnim zadovoljstvom postavljam ovde funkciju koja mi je rešila problem gotovo na čudesan način. Funkcija je preuzeta sa https://stackoverflow.com/ques...-the-highlighted-selected-text
I izgleda ovako.
Code:

<SCRIPT LANGUAGE="JavaScript">
function getSelectionText() {
    var text = "";
    var activeEl = document.activeElement;
    var activeElTagName = activeEl ? activeEl.tagName.toLowerCase() : null;
    if (
      (activeElTagName == "textarea") || (activeElTagName == "input" &&
      /^(?:text|search|password|tel|url)$/i.test(activeEl.type)) &&
      (typeof activeEl.selectionStart == "number")
    ) {
        text = activeEl.value.slice(activeEl.selectionStart, activeEl.selectionEnd);
    } else if (window.getSelection) {
        text = window.getSelection().toString();
    }
    return text;
}

document.onmouseup = document.onkeyup = document.onselectionchange = function() {
  document.getElementById("rec3").value = getSelectionText();
};
</SCRIPT>


Funkciju možete postaviti bilo gde na PHP stranici i jedino što treba da uradite jeste da ubacite ID taga u koji želite da se vaša selekcija prenese (u mom primeru je to „rec3“) i apsolutno ništa više! A prenosiće se SIMULTANO i to sa BILO KOG DELA stranice - SVE što "premazujete“ kursorom!

Uverite se i sami kako to izgleda: http://www.paundurlic.com/vlaski.recnik/celarec.php?id=4257



[ dakipro @ 30.08.2017. 07:22 ] @
nema na cemu, drago mi je da radi.
Ne znam da li je "po dizajnu" polje neaktivno, odnosno ne moze rucno da se upise u njega proizvoljan text, jedino moze da se selektuje deo teksta i tako koristi.

I nikad nije kasno za ucenje, nedostatak vremena je samo izgovor, ko hoce nadje nacin, i vreme :)
[ pakito @ 30.08.2017. 08:07 ] @
Uočio sam vrlo brzo da mi polje čiji sam ID nazvao "rec3" ne da da nista unosim ručno, što je prava katastrofa, pa sam eskperimentišući to prevazišao preradom poslednjih redova u funkciji.

Iz
Code:

document.onmouseup = document.onkeyup = document.onselectionchange = function()
document.getElementById("rec3").value = getSelectionText();


Isključio sam "document.onmouseup = document.onkeyup" i ostavio samo ovaj deo koji odlično radi i "automatski" i ručno:

Code:

document.onselectionchange = function()
document.getElementById("rec3").value = getSelectionText();


Ostalo mi je još jedno golemo "ali" i treba mi pomoć da i to rešim.
Naime, kad nije aktivan neki od navedenih elemenata "textarea", "input" i sl, onda funkcija deluje na ceo "window", što je vrlo bzvz, jer sa na njemu nalazi sve i svašta.
Da bih to sprečio, isključio sam

Code:

   } else if (window.getSelection) {
        text = window.getSelection().toString();
 


ali se nametnuo problem koji "element" da ponudim a da bude obuhvaćeno samo ono što se "ekuje" iz baze, što je u mom slučaju sve stavljeno u jednu tabelu i zaodenuto jednim "div"-om.
Sa obzirom na haos koji sadrži taj deo koda, bilo bi idealno kad bi ova funcija mogla da se ograniči na "table" ili eventualno "div" ili "form", ali test sa tim nije prošao.
Ne znam kako to da rešim, jer zapravo ne znam u ovome trenutku šta sve može biti "document.activeElement", a da njime bez problema ograničim deo "window"-a na kome se nalaze samo elementi od interesa za korisnika.