Stránka: 1 z 1
| [ Príspevkov: 19 ] | |
| Autor | Správa |
|---|
Registrovaný: 25.12.06 Prihlásený: 01.03.13 Príspevky: 239 Témy: 20 | 20 Bydlisko: Krásno n/Ky... |
Potrebujem zistit polohu elementu na obrazovke, to znamena hodnotu top a left alebo nieco podobne ako je aj v css, proste nejake suradnice vzhladom k stranke a nasledne ich nejaky sposobom "poslat" php scriptu ktory s nimi bude dalej pracovat..any ideas?
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | 4 |
poradim Ti iba s poziciou v JS: Kód: if(typ_browsera=="IE") { obj.style.posLeft ..... obj.style.posTop ...... } else // "Netscape" { obj.style.left ... obj.style.top .... }
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
a následne poslať cez ajax
|
|
Registrovaný: 25.12.06 Prihlásený: 01.03.13 Príspevky: 239 Témy: 20 | 20 Bydlisko: Krásno n/Ky... |
rooobertek píše: a následne poslať cez ajax
nejaky prakticky priklad by sa nenasiel?
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Kód: http://google.com/codesearch?hl=en&lr=&q=lang%3Ajavascript+xml_http_request&sbtn=Search
|
|
Registrovaný: 25.12.06 Prihlásený: 01.03.13 Príspevky: 239 Témy: 20 | 20 Bydlisko: Krásno n/Ky... | |
Registrovaný: 19.07.08 Prihlásený: 20.07.08 Príspevky: 11 Témy: 2 | 2 Bydlisko: Bratislava |
Doplním komentárora sento,...
Skôr by som odporučil poslať formulárom (skryté elementy), lebo najskôr tie hodnoty chceš aj hneď využiť.
Ajax v prípade, že ich chceš iba uložiť do databázy ako štatistický údaj.
Kód: <form action="" method="post" id="hiden_form"> <input type="hidden" name="pos_left" id="pos_left" /> <input type="hidden" name="pos_right" id="pos_right" /> </form>
<script type="text/javascript"> // 1.) ziskas hodnoty pos_left, pos_right (bolo napísané, cross-browser téma) var pos_left = 0; var pos_right = 0; // 2.) vlozis do formulara a odosles ho var form = document.getElementById('hiden_form'); form.getElementById('pos_left').value = pos_left; form.getElementById('pos_right').value = pos_right; form.submit(); </script>
V PHP potom vstup nezabudni ošetriť... Kód: $pos_left = intval($_POST['pos_left']); ...
_________________ www.pixo.sk |
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Znova otvorim tuto temu
Predstavme si ze chceme robit naozaj kvalitnu stranku. Chceme aby fungovala aj pre uzivatelov co maju javascripty vypnute, ale pre tych co ich maju zapnute by mohla ponukat funkcnosti navyse, pripadne krajsie.
Napriklad:
1) bez javascriptu pouzijeme atribut "title". S javascriptom ale mozeme pouzit dizajnovo pekne "bublinky".
2) bez javascriptu budeme hodnotenia clankov a oznam o uspesnom odoslani hodnotenia clanku otvarat v novom okne, s javascriptom sa o to postara ajax
a podobne...
problem je, ze ci javascript funguje potrebujeme vediet uz pri generovani stranky, teda na servery (a prisposobit tomu generovany kod). server ale netusi ci ma klient javascript zapnuty, alebo nie (skoda ze takuto info browser neposiela v hlavicke co?)
Takze jedine co mozeme urobit, je nastavit si informaciu o fungujucm javascripte do cookies. To bdue ale znamenat, ze minimalne prve zobrazenie stranky bude bez javascriptovych vymozenosti, lebo az pri nom si nastavime cookie. Dalsia praca uz bude bezproblemova, ale nie je to pekne riesenie.
Zaoberal sa tym uz niekto? Any ideas?
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Ja som sa tým zaoberal.
Kód: $vysledok = "0 bodov";
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
GoodWill: Nemôžeš to urobiť ako keby tam JS nebol a pomocou JS tam po kompletnom načítaní stránky pridať tie pekné bublinky, zmeniť link tak, aby sa poslali informácie cez Ajax...
Väčšina vlastností sa tak bude dať urobiť (momentálne mi nenapadá nič, čo by sa tak vyriešiť nedalo). Ak by ale niečo také bolo, tak by som tam pridal aj link na "lo-fi" verziu stránky (možno by som ju v rámci PR nazval "mobilnou" verziou). 
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Napadlo mi jedno riesenie... este som to netestoval, neviem ako velmi to uzivatelom realne zneprijemni pouzivanie stranky.
Myslienka je takato:
Predpokladajme ze mame php stanky, kde vsetok obsah zobrazujeme cez index.php (?page=nieco).
Na zaciatku index.php skontrolujeme hodnotu $_SESSSION["js_enabled"].
Ak hodnota nie je zadana (prve zobrazenie stranky), nastavime tam hodnotu false a forwardneme usera na stranku ktora neurobi nic ine ako ze pomocou javascriptu zmeni hodnotu na true a potom forward spat na povodne pozadovanu adresu.
Tam uz v indexe uvidime bud false alebo true a mozeme s tym dalej pracovat.
Pravdou je ze neviem ci si php a js vedia navzajom citat/prepisovat session cookies.
navyse ta pomocna stranka minimalne "preblikne" a uzivatel moze byt hned na uvod znechuteny (spomalenim, preblinkutim, pripadne nutnostou manualne odkliknut presmerovanie ak zlyha). Riesenie to ale je... otestujem a doplnim sem info.
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Cez JS session neupravíš. Budeš tam musieť pridať aj kontrolu $_COOKIE a odtiaľ budeš musieť prenášať hodnotu do $_SESSION (alebo aj nie, môžeš ju používať priamo). Teda, v php v prípade, že neexistuje $_COOKIE['js_enabled'] pridáš to cookie s hodnotou false a v js to potom môžeš zmeniť.
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
to zase prinasa problem s disablovanymi cookies 
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Cez js môžeš zmeniť aj URL.
A s čím tam máš problém? Pri tagu <a> nie je problém dať onclick a vrátiť false, takže v prípade, že beží JS sa to nikam nepresmeruje (podobne aj <form>).
Pekný tooltip sa tiež dá urobiť aj tak, aby fungoval aj bez JS (knižnice pre tooltipy si s tým poradia aj automaticky).
Podobne sa dá vyriešiť veľa "problémov".
Mal by si si urobiť zoznam, čo potrebuješ a potom sa zamyslieť, ako sa to dá dosiahnuť.
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Nehovor somnou ako s lamou please  len som sa snazil zistit ci niekto nema lepsie riesenie ako je to na ktore som myslel.
Riesenie teda mam, otestovane a funkcne (na FF3 a IE7). Je tam sice male prebliknutie (viditelne hlavne ked je JS disablovany) ale nic tragicke... preblikne to len raz.
Hodim sem aj script, keby si to chcel niekto vyskusat (pripadne mozete testnut na dalsich browseroch a napisat ci to tam bezi alebo nie... starsie IE, opera... dakujem)
Ak niekto vymysli lepsie riesenie, pripadne vylepsenie, budem len rad. Nekritizujte prosim formu, ani to ze tam nie su osetrene vstupy, je to len mala testovacia stranka. Dakujem.
takze nazov scriptu bude js_test.php
Kód: <?php session_start(); // pre ucely jednoducheho opakovaneho testovania si umoznime reset if ($_GET["reset"] == "true") unset($_SESSION["js_enabled"]); // kontrola javascriptu uz zbehla => je disablovany else if ($_GET["js"] == "0") $_SESSION["js_enabled"] = "false"; // kontrola javascriptu uz zbehla => je enablovany else if ($_GET["js"] == "1") $_SESSION["js_enabled"] = "true"; // este nevieme ci ma user js enableovany => zistime si to else if (!isset($_SESSION["js_enabled"])) { // default $_SESSION["js_enabled"] = "false"; // vygenerujeme jednoduchu stranku ktora nas okamzite forwardne s5 // s priznakom ci je javascript eneblovany alebo nie echo '<html> <head><meta http-equiv="REFRESH" content="0;url=js_test.php?js=0" /></head> <body> <a href="js_test.php?js=0">Ak vas prehliadac nepodporuje presmerovanie, kliknite prosim na tuto linku</a> <script type="text/javascript">location.href="js_test.php?js=1";</script> </body> </html>'; exit; } // tu uz len zobrazime vysledok nastavenia + pomocne odkazy na testovanie echo '<html><body>';
if ($_SESSION["js_enabled"] == "true") echo "Javascript je enablovany"; else if ($_SESSION["js_enabled"] == "false") echo "Javascript je disablovany";
echo '<br /><br /> <a href="js_test.php">refresh</a><br/> <a href="js_test.php?reset=true">reset</a> </body></html>'; ?>
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
tiez som kedysi davnejsie taketo daco riesil, ale nikdy som neprisiel k aspon uspokojivemu rieseniu. Tento tvoj kod sice na prvy pohlad funguje, ale nepocita s niektorymi situaciami:
1. ak pridem na stranku a mam zapnuty js, zobrazi mi, ze mam js zapnuty, lenze ked si ho teraz vypnem, stale bude indikovat, ze ho mam zapnuty
2. mam js zapnuty a v url bude patricna hodnota js=1, lenze ked ju prepisem na 0, zobrazi sa mi, ze mam js vypnuty, aj ked tomu tak nie je... nikdy som ho totiz nevypinal...
3. pravdepodobne to plati aj naopak
Takze bud budeme dalej rozmyslat, ako tento skript vylepsit alebo to bude najlepsie spravit podla rady chrona a to pridavanim atributov cez js k jednotlivym elementom na stranke...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
suhlasim, ale
1. vypinanie/zapinanie javascriptu pocas prace pouzivame len na otestovanie nasich stranok, pripadne na blokovanie neprijemneho obsahu. inak ho mame stale zapnuty/vypnuty. Tento nedostatok ma nijako specialne netrapy
2. urcite to budem pouzivat v kombinacii s rewrite modom. a navyse, ked si niekto prepisuje parametre v adrese, nemoze sa divit ze dostava neadekvatne vysledky. ak chce niekto zmanipulovat kontrolu zapnutia javascriptu, mne tym neuskodi
chronova rada je dobra, ale nepaci sa mi z vykonnostneho hladiska.
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
nj, neviem ako ty, ale ja by som sa s tym riesenim a vysvetlenim, ze sak to co robi pouzivatel ma netrapi, velmi neuspokojil... ked sa hlada taketo riesenie, tak by malo fungovat vzdy, v opacnom pripade to nema velmi zmysel...
zalezi od toho, ake "vymozenosti" planujes ludom ponuknut prostrednictvom js... vo vacsine pripadov nemusis kontrolovat, ci ma niekto js zapnuty, ak ho ma, bude sa vsetko vykonavat spolu s js, ak nie, tak ziadny js kod sa nespusti...
cez google som nasiel jedno riesenie v aspx, ktore ze vraj funguje, bohuzial, nemam moznost to vyskusat... len skoda, ze do php sa to prepisat neda...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Mas pravdu, sice je otravne osetrovat experimenty userov, ale nakoniec to asi budem robit tak ze po vygenerovani stranky ju javascript celu zbehne a prisposobi. Budem sa musiet spolahnut na to ze dnes su masiny silne a nikto si to zdrzanie nevsimne.
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Stránka: 1 z 1
| [ Príspevkov: 19 ] | |
|