Autor | Zpráva | ||
---|---|---|---|
vkalina Profil |
#1 · Zasláno: 7. 4. 2013, 21:30:46 · Upravil/a: Moderátor (editace znemožněna) 10. 4. 2013, 11:06:30
Zdravim, vytvořil jsem tuto funci
function nastavteplotudoma() { d = prompt("Zadej domácí teplotu", ""); if(d > 5 && d < 40){ var nastavdoma = d; } else{ alert("Teplotu lze měnit v rozsahu 5 až 40°C"); } } místo "var nastavdoma=d" , bych ale potřeboval na server odeslat tento prikaz sdscep?sys147=44 kde tech "44" by mela byt ta promenna "d" cela stranka je tady 62.209.235.84/user.htm Je to nahrane v PLC modulu, a potrebuju do nej ukladat prave ty zmeny prez tlacitka do promennych sys(147) sys(148) Vim ze je to asi primitivni, ale s javascript bojuji teprve tyden. Pomozte prosim stari kozaci. Diky Venca |
||
Camo Profil |
#2 · Zasláno: 7. 4. 2013, 22:04:16
vkalina:
Tak keď JS neovládaš tak asi len takto: location=location.href+'?d='+d; |
||
vkalina Profil |
Tak se mi to povedlo takto
function nastavteplotudoma() { d = prompt("Zadej domácí teplotu", ""); if(d > 5 && d < 40){ location.href = "http://62.209.235.84/sdscep?sys147="+d ; // location.href = "http://62.209.235.84/user.htm" ; } else{ alert("Teplotu lze měnit v rozsahu 5 až 40°C"); } } http://62.209.235.84/user.htm kdyz dam za to jeste location.href = "http://62.209.235.84/user.htm" ; tak se predchozi location.href = "http://62.209.235.84/sdscep?sys147="+d ; neprovede <\ |
||
Jan Kupka Profil |
#4 · Zasláno: 8. 4. 2013, 00:38:18
vkalina:
Místo location.href použij XMLHttpRequest (viz https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest).
|
||
Joker Profil |
#5 · Zasláno: 8. 4. 2013, 07:47:39
Případně, jestli se ta adresa má jen „pingnout“, ještě jednodušší metoda než XMLHTTPRequest je vyrobit iframe, případně obrázek, a na tu adresu ho nasměrovat.
|
||
vkalina Profil |
No to vypada jako spravny smer, jen nevim, jestli to se svymi znalostmy dam dokupy. Potrebuju, aby se na tu stranku ten prikaz odeslal a vykonal. Nabiji to promennou, s kterou pak pracuje vnitrni program PLC
Neslo by vymyslet neco jako open("GET", "get_sys[147] ale nevim jak dal ? |
||
preca1 Profil |
#7 · Zasláno: 8. 4. 2013, 08:41:06
|
||
vkalina Profil |
preca1:
VYRESENO S boží pomocí, tedy pomocí kolegy z práce jež je BÚH vzniklo toto, kdyby to někdo potřeboval function nastavteplotudoma() { d = prompt("Zadej domácí teplotu", ""); if(d > 5 && d < 40){ var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); var url="sdscep" url=url+"?sys147="+d+"&"+Math.random()+"="+Math.random() if(x == null) { alert("OOooops, Ajax se zakoktal.") } x.onreadystatechange = function() { if(x.readyState==4 && x.status==200) { // Tady muzem vlozit do aktualni stranky vracenout hodnotu // document.getElementById("realizace").innerHTML=x.responseText alert('Skript vratil retezec: ' + x.responseText); } } x.open("GET", url, true); x.send(null); } else{ alert("Teplotu lze měnit v rozsahu 5 až 40°C"); } } |
||
Kcko Profil |
#9 · Zasláno: 8. 4. 2013, 15:19:24
vkalina:
Nepotřebujeme, umíme základy JS a proto se též pasujeme na božstvo. |
||
vkalina Profil |
#10 · Zasláno: 8. 4. 2013, 16:37:49
Kcko:
o tom nepochybuji, dal jsem to tam pro talpy jako ja |
||
Str4wberry Profil |
#11 · Zasláno: 8. 4. 2013, 16:47:12
Pokud není potřeba zpětná vazba od skriptu, lze, jak píše Joker, použít obrázek, stačí dva řádky kódu.
|
||
vkalina Profil |
#12 · Zasláno: 8. 4. 2013, 16:58:22
Str4wberry:
Ted uz to chapu, je to jednodusi a pro moje potreby by to taky stacilo. Diky Vsem za pomoc |
||
preca1 Profil |
#13 · Zasláno: 8. 4. 2013, 17:14:00
Str4wberry:
Může někdo prosím rozvést, kdy nepotřebuju zpětnou vazbu ze serveru? Nenapadá mě situace, kdy aspoň nepotřebuju vědět, jestli se volání podařilo, nebo ne. Dík |
||
Joker Profil |
#14 · Zasláno: 8. 4. 2013, 17:35:00
preca1:
„Může někdo prosím rozvést, kdy nepotřebuju zpětnou vazbu ze serveru?“ Třeba zrovna v případě, který vkalina v tomto vlákně řeší. Chce jen odeslat hodnotu nějakému skriptu, žádná zpětná vazba se nepožaduje (v [#1] není ani zmíněné, že by chtěl testovat úspěch/neúspěch volání). Jinak nějakou čistě binární informaci typu „úspěch/neúspěch“ by šlo předat i u toho obrázku, kdyby serverový skript byl naprogramovaný tak, aby v případě úspěchu opravdu vrátil skutečný obrázek. Například budu mít serverový skript, který něco udělá a v případě úspěchu vrátí zelený obrázek. Prvku nastavím na pozadí červený obrázek a jako src vložím příslušný skript. A pak červený obrázek = neúspěch a zelený obrázek = úspěch. |
||
Chamurappi Profil |
#15 · Zasláno: 8. 4. 2013, 17:41:36
Reaguji na precu1:
V případech, kdy není moc jasné, co by se mělo při selhání dál dělat. Když je selhání málo pravděpodobné a skoro neškodné. Reaguji na Jokera: „aby v případě úspěchu opravdu vrátil skutečný obrázek“ Ano, stav se potom odchytí událostmi onload a onerror .
Po úspěšném načtení obrázku je též možné zjistit jeho rozměry, takže jde touto cestou celkem snadno přenést dvě čísla. |
||
preca1 Profil |
#16 · Zasláno: 9. 4. 2013, 00:23:29
Použití obrázku po technický stránce chápu, šlo mi o tu aplikaci.
Joker: Tak zrovna v tomhle případě by to podle mě řešit měl. Když nastavuje nějakou hodnotu, tak by měl uživateli dát vědět, jestli se poštěstilo. Chamurappi: A nějaký takový konkrétní případ? Napadá mě snad jen udržování informací o tom, že je uživatel přihlášen. |
||
vkalina Profil |
#17 · Zasláno: 9. 4. 2013, 20:58:12
No a ted resim opacny problem, potrebuju nacist do promenny vysledek tohoto GETu
http://62.209.235.85/get_sys[310] tak co pomuze nekdo ? |
||
_es Profil |
#18 · Zasláno: 9. 4. 2013, 21:11:46
vkalina:
No a v [#8] ti snáď odpoveď servera nevypíše, alebo na čo sa vlastne pýtaš? |
||
Str4wberry Profil |
#19 · Zasláno: 9. 4. 2013, 21:13:19
Buď lze použít ten AJAX (pokud se získávají data ze stejné domény). Jinak to jde vyřešit tak, že uvedený skript vrátí JS kód. Například zavolá nějakou funkci a předá jí data. Tato JS funkce bude definována na stránce, která má data zjišťovat a celá akce se spustí tak, že se zmíněná stránka (
http://62.209.235.85/get_sys[310] ) připojí jako externí skript.
|
||
vkalina Profil |
#20 · Zasláno: 9. 4. 2013, 21:27:39 · Upravil/a: vkalina
_es:
v tomo pripade jsem na odesilal promennou "d" (nastavoval teplotu ) na web zarizeni tedka ale potrebuji teplotu z jineho cidla zarizeni ulozit do prommene, abych s ni mohl dale pacovat. (to je ten vysledek na strance) Str4wberry: Je to samozrejme ze stejne domeny, to ze to musi byt pres ajax je mi jasny, ale netusim jak to do ty pomenny dostat. |
||
Str4wberry Profil |
#21 · Zasláno: 9. 4. 2013, 21:36:39
Přes AJAX to být nemusí. Druhý způsob lze použít i u stejné domény.
Tedy by to mohlo být následovně: Na uvedené stránce si vypište var promenna = 456; a tento skript si připojte do stránky, která má s hodnotou pracovat.
|
||
vkalina Profil |
#22 · Zasláno: 9. 4. 2013, 21:44:33
Mozna se neumim spravne vyjadrit, ale ja potrebuji /ted me nekamenujte, vim ze to takto nejde /
var promenna = http://62.209.235.85/get_sys[310] pricemz ten get_sys je ta teplota |
||
_es Profil |
|||
Str4wberry Profil |
#24 · Zasláno: 9. 4. 2013, 21:59:45
Na té stránce
http://62.209.235.85/get_sys[310] místo současného čísla vypište zkrátka var promenna = teplota; . Pokud používáte PHP, tak něco jako:
<?php echo "var promenna = " . $teplota . ";"; promenna teplotu.
|
||
vkalina Profil |
_es:
nejde o to upravit url http dotazu, na to bych se se neptal, ale dostat nazpet to co zobrazi ta uvedena adresa, kdyz si parkrat za sebou refresnete ten odkaz http://62.209.235.85/get_sys[310] , zjistite, ze se ta hodnota neustale meni a ja ji pave potrbuju nacist a pracovat s ni Str4wberry: V phpku to neni problem, tam to vycitam prez XML viz http://ksystems.cz/Teplomer/kotelna.php http://62.209.235.86/Teplomer/tcklima.php . Ale ja to prave potrebuju dostat na web kterej je soucasti onoho PLC modulu a ten v sobe nema php, takze to potrebuju dostat do javascriptu |
||
_es Profil |
#26 · Zasláno: 9. 4. 2013, 22:14:05
vkalina:
„se ta hodnota neustale meni a ja ji pave potrbuju nacist a pracovat s ni“ No tak ju predsa načítaš pomocou objektu XMLHttpRequest koľkokrát len chceš a „pracovať“ s ňou môžeš podľa ľubovôle - máš ju vo vlastnosti responseText . Stále nerozumiem, v čom je vlastne problém.
|
||
vkalina Profil |
#27 · Zasláno: 9. 4. 2013, 22:16:53
tak ten script napis a dej ho sem
|
||
_es Profil |
vkalina:
Prečo si ho nenapíšeš sám? Aké ešte informácie k tomu potrebuješ? Diskusia slúži skôr na rady, než na riešenie dotazov „Napíšte mi skript“ - s neúplným a vágnym popisom, čo by mal ten skript robiť. |
||
vkalina Profil |
_es:
s JS teprve zacinam, proto se ptam a schanim informace. Pokud nechcete a nebo neumite pomoc, je zbytecne se do diskuse zapojovat. Kdybych to umel vyresit, tak tu nebudu otravovat. |
||
_es Profil |
#30 · Zasláno: 9. 4. 2013, 22:32:36
vkalina:
„Pokud nechcete a nebo neumite pomoc, je zbytecne se do diskuse zapojovat.“ Problém je, že nie je jasné, v čom je vlastne problém: Tvrdíš, že: - skript v [#8] ti funguje. - kde sa v ňom nastavuje URL, ti je vraj jasné. - s vrátenou hodnotou „pracovať“ vieš - v [#8] ti ju vypíše funkcia alert .
Takže mi nie je jasné, prečo si jednoducho nezmeníš URL dotazu a „nepracuješ“ s vrátenými dátami nejako inak ako v [#8]. |
||
Téma pokračuje na další straně.
|
0