root/java/sql-vyuka/web/hlavni.js @ 38:0a865a665698

Revision 38:0a865a665698, 3.7 KB (checked in by František Kučera <franta-hg@…>, 15 years ago)

Průvodce: JavaScript?, HTML, CSS.

RevLine 
[3]1/** ID html prvků */
2const vstupniPole = 'vstupniPole';
3const vystupniPole = 'vystupniPole';
4const napovedniPole = 'napovedniPole';
[20]5const stavovePole = 'stavovePole';
[3]6
7
[2]8/**
9 * Aby to fungovalo i v MSIE 6.
10 * @return AJAXový objekt.
11 */
12function getXmlHttpRequestObject() {
13    if (window.XMLHttpRequest) {
14        return new XMLHttpRequest();
15    } else if(window.ActiveXObject) {
16        return new ActiveXObject("Microsoft.XMLHTTP");
17    } else {
[22]18        alert(document.lokalizace.nepodporovany.value);
[2]19        return null;
20    }
21}
22
[22]23
[2]24/** Náš AJAXový objekt. */
25var ajax = getXmlHttpRequestObject();
26
[22]27
[2]28/**
[3]29 * Vrací vstup od uživatele.
30 * @return SQL příkaz zadaný uživatelem.
31 **/
32function getSQL() {
[11]33    return document.aplikace.vstupniPole.value;
[3]34}
35
[22]36
[3]37/**
[2]38 * Zobrazí text na požadovaném místě.
[22]39 * @param text text k zobrazení. V případě formulářů prostý text, v ostatních případech HTML text.
40 * @param kde id prvku, do kterého se má text vypsat.
[2]41 **/
42function zobraz(text, kde) {
[19]43    if (kde == vstupniPole) {
44        document.aplikace.vstupniPole.value = text;
[20]45    } else if (kde == stavovePole)  {
46        document.aplikace.stavovePole.value = text;
[19]47    } else {
48        document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
49    }
[2]50}
51
52
53/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
[5]54function ajaxVykonatSQL() {
[2]55    if (ajax.readyState == 4 || ajax.readyState == 0) {
[22]56        zobraz(document.lokalizace.probihaSQL.value, stavovePole);
[24]57        ajax.open("POST", 'ajax.jspx?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
[19]58        ajax.onreadystatechange = function() {
59            if (ajax.readyState == 4) {
[22]60                zobraz(ajax.responseText, vystupniPole);
61                zobraz('', stavovePole);
[19]62            }
63        };
[2]64        ajax.send(null);
65    }
66}
[5]67
68
69/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
70function ajaxZobrazitHistorii() {
71    if (ajax.readyState == 4 || ajax.readyState == 0) {
[22]72        zobraz(document.lokalizace.probihaHistorie.value, stavovePole);
[24]73        ajax.open("POST", 'ajax.jspx?akce=historie', true);
[19]74        ajax.onreadystatechange = function() {
75            if (ajax.readyState == 4) {
[22]76                zobraz(ajax.responseText, vystupniPole);
77                zobraz('', stavovePole);
[19]78            }
79        };
[5]80        ajax.send(null);
81    }
82}
[38]83
84var pruvodceAktualniId = 0;
85
86function ajaxPruvodcePredchozi() {
87    ajaxPruvodceNaviguj('predchozi', pruvodceAktualniId, null);
88}
89
90function ajaxPruvodceZpet() {
91    /** TODO: historie navigace */
92    alert('Tato funkce se teprve připravuje.');
93}
94
95function ajaxPruvodceVpred() {
96    /** TODO: historie navigace */
97    alert('Tato funkce se teprve připravuje.');
98}
99
100function ajaxPruvodceNasledujici() {
101    ajaxPruvodceNaviguj('nasledujici', pruvodceAktualniId, null);
102}
103
104function ajaxPruvodceKod(kod) {
105    ajaxPruvodceNaviguj('podleKodu', 0, kod);
106}
107
108function ajaxPruvodceId(id) {
109    ajaxPruvodceNaviguj('podleId', id, null);
110
111}
112
113function ajaxPruvodceNaviguj(akcePruvodce, id, kod) {   
114    if (ajax.readyState == 4 || ajax.readyState == 0) {
115        ajax.open("POST", 'ajax.jspx?akce=napoveda&pruvodce=' + encodeURIComponent(akcePruvodce) + '&idPruvodce=' + encodeURIComponent(id) + '&kodPruvodce=' + encodeURIComponent(kod), true);
116        ajax.onreadystatechange = function() {
117            if (ajax.readyState == 4) {
118                zobraz(ajax.responseText, napovedniPole);
119                if (document.pruvodceData) {
120                    pruvodceAktualniId = document.pruvodceData.id.value
121                } else {
122                    pruvodceAktualniId = 0;
123                }
124            }
125        };
126        ajax.send(null);
127    }
128// TODO: změnit URL
129}
Note: See TracBrowser for help on using the browser.