« 1 2
Autor Zpráva
vkalina
Profil
no, to jsem si taky myslel, ale bohuzel nevypise. Jenom se mi vykona ten x.open("GET", url, true); Takze to co jsem chtel v prvnim pozadavku je ok, ale zpracovat odpoved se mi uz nedari
Camo
Profil
vkalina:
Prístup napíšte mi script sa tu nepestuje. Dúfam....
Napíš ty svoj script a mi ti povieme kde máš chybu. Ak nedokážeš pochopiť ani to ako z toho scriptu čo tu už máš predáš premennú do stránky, tak si to naštuduj, zadaj ponuku v sekcii Práce a zákazky, alebo sa pomodli ku tomu svojmu božstvu.
vkalina
Profil
Camo:
Nejspiš je to moje chyba, že nedokážu vysvětlit co hledám, pokusím se tedy ješte jednou
<script>
var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
var url="//get_"
url=url+"[sys310]""&"+Math.random()+"="+Math.random()
x.open("GET", url, true);
var teplotadoma = JSEM POTREBUJU DOPLNIT FUNKCI KTERA MI VRATI ODPOVED Z WEBU
x.send(null);
<script/>

Ajax je pro mě nová věc a taky nejsem profi programátor, ale určitě to není o tom, že bych se nechtěl něco naučit
preca1
Profil
vkalina:
Vždyť už to tady jednou máš, přesně jak psal _es v #30.

Vypadá to, že úplně nechápeš, jak AJAX funguje. Nejdůležitější asi je, že je asynchronní, tedy že se kód nevyhodnocuje lineárně (tak jak je napsanej), ale až když nastane nějaká událost (to je v JS hodně častý, takže doporučuju pochopit koncept událostí (en: event) a obsluh událostí (en: event handler)).

Při návratu odpovědi ze serveru (zjednodušeně) vyvstane událost readystatechange a vykoná se její obsluha (funkce (tzv. callback)). V tvém příspěvku #8 je to funkce na řádcích 12 - 20. Dělá se tam nějaká kontrola, ale o tom si přečteš v nějakém článku.

Popsal sem to hodně zevrubně, pokud to chceš pochopit (a neni to tak těžký), tak doporučuju vyhledat si AJAX a přečíst si základy. Najdeš milion okomentovanejch příkladů a další milion článku, kde se popisuje teorie.
Camo
Profil
vkalina:
My tu všetci chápeme čo chceš. Lenže ty nechápeš čo sa ti ostatný snažia vysvetliť.
V tvojom kóde máš doslova napísané čo máš robiť, ale aj tak to stále pcháš inde.
Riadok 12-20
x.onreadystatechange = function()
            {
                if(x.readyState==4 && x.status==200)
                {
                    // Tady muzem vlozit do aktualni stranky vracenout hodnotu
                    // napríklad priradiť ako sa stále snažíš nám vysvetliť
                    // napr. document.getElementById("realizace").innerHTML=x.responseText
                    alert('Skript vratil retezec: ' + x.responseText);
               }
          }
vkalina
Profil
Uz mi to jde, chvili mi trvalo, nez jsem pochopil, ze to musim pouzit jako funkci


jenomze jsem stejne v pasti, protoze to potrebuju zpracovat pred vlastnim nactenim stranky, protoze podle stazenych hodnot nastavuji jake se maji zobrazit obrazky v tabulkach
Chamurappi
Profil
Reaguji na vkalinu:
podle stazenych hodnot nastavuji jake se maji zobrazit obrazky v tabulkach
Tak je nastavuj v tom callbacku.
vkalina
Profil
Chamurappi:
No snad už jsem to vyřešil, a dokonce to i funguje.
Jenom mi na to prosim někdo zkušenější mrkněte, jestli se nedrbu levou nohou za pravym uchem

<script>
function ulozteplotu() {
            var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
            var url="/get_";
            url=url+"sys[310]"+"&"+Math.random()+"="+Math.random();
            x.open("GET", url, true);
            x.onreadystatechange = function()
            {
                if(x.readyState==4 && x.status==200)
                {
                    document.write(x.responseText /100 + "°C");
                }
          }
            x.open("GET", url, true);
            x.send(null);
}
var teplota=(ulozteplotu());
document.write(teplota); // to je jenom kontrola
</script>

budu to zakomponovavat do tohoto scriptu

http://ksystems.cz/Teplomer/vyvoj.htm
Camo
Profil
vkalina:
No jo, lenže ako ti to funguje?
1.Môžem sa spýtať, prečo to URL vyzerá tak šialene - /get_sys[310]&0.9598881019723813=0.9959963230574754 ? Resp. vieš ako sa posielajú premenné cez url?
2.Document.write() nepoužívaj, lebo táto funkcia pri zavolaní prepíše celú stránku ak sa volá po vykreslení. Použi vlastnosť elementu innerHTML.
vkalina
Profil
No ta silena url je tam kvuli cache, aby ty dada byly opravdu aktualní, není to můj vynález, takhle to má výrobce PLC modulu ve svým DEMU viz http://84.244.91.117:10000/user.htm
no a co se týče toho document.write(x.responseText /100 + "°C") , tak to jsem nevěděl, díky za informaci, ale v tomto případě mě to netrápí, protože všechny proměnný se nabíjí před načítáním odsahu, a až pak dojde k zobrazení stránky. Asi to není úplně javakoser, ale je to muj uplně první počin v psaní webu. Jsem samouk a todle je jen jedna z casti uceleneho projektu. Taky jsem se u toho musel naučit topenarinu, Linux, PHP, svařet s argonem, instalovat klimatizace a pod. Pravda je, ze me to bavi, ale ani v jednom oboru nebudu nikdy profik. Přecijenom mě živý telekomunikace a možná to v bodoucnu bude zase elektrika.
_es
Profil
vkalina:
co se týče toho document.write(x.responseText /100 + "°C") , tak to jsem nevěděl, díky za informaci, ale v tomto případě mě to netrápí, protože všechny proměnný se nabíjí před načítáním odsahu, a až pak dojde k zobrazení stránky.
Ale nemôžeš si byť istý, za aký čas vráti server odpoveď - ak až po načítaní stránky, tak sa ti celá stránka zmaže: Časté potíže, zajímavosti a poučné debaty » Psaní metodou document.write po načtení stránky maže stránku. Je to najhorší typ chyby, môže nastať náhodne, či v závislosti o rýchlosti siete či od prehliadača.

var teplota=(ulozteplotu());
Vo funkcii ulozteplotu nie je vôbec príkaz return, teda jej návratová hodnota je undefined.
vkalina
Profil
Hm to, to mamate pravdu, je to moji neznalosti, budu muset zapatrat jak to obejit. Je pravda, ze potrebuju pres tuto funkci odecitat devet teplot a zrejme by nastavalo jejich promychani, takze by se mi ve vysledku zobrazovali hlouposti. Blby je, ze ja to vzhledem k rozvrzeni tabulky a rozrezani obrazku do tech promennych potrebuju dostat.
« 1 2

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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