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.

Line 
1/** ID html prvků */
2const vstupniPole = 'vstupniPole';
3const vystupniPole = 'vystupniPole';
4const napovedniPole = 'napovedniPole';
5const stavovePole = 'stavovePole';
6
7
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 {
18        alert(document.lokalizace.nepodporovany.value);
19        return null;
20    }
21}
22
23
24/** Náš AJAXový objekt. */
25var ajax = getXmlHttpRequestObject();
26
27
28/**
29 * Vrací vstup od uživatele.
30 * @return SQL příkaz zadaný uživatelem.
31 **/
32function getSQL() {
33    return document.aplikace.vstupniPole.value;
34}
35
36
37/**
38 * Zobrazí text na požadovaném místě.
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.
41 **/
42function zobraz(text, kde) {
43    if (kde == vstupniPole) {
44        document.aplikace.vstupniPole.value = text;
45    } else if (kde == stavovePole)  {
46        document.aplikace.stavovePole.value = text;
47    } else {
48        document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
49    }
50}
51
52
53/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
54function ajaxVykonatSQL() {
55    if (ajax.readyState == 4 || ajax.readyState == 0) {
56        zobraz(document.lokalizace.probihaSQL.value, stavovePole);
57        ajax.open("POST", 'ajax.jspx?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
58        ajax.onreadystatechange = function() {
59            if (ajax.readyState == 4) {
60                zobraz(ajax.responseText, vystupniPole);
61                zobraz('', stavovePole);
62            }
63        };
64        ajax.send(null);
65    }
66}
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) {
72        zobraz(document.lokalizace.probihaHistorie.value, stavovePole);
73        ajax.open("POST", 'ajax.jspx?akce=historie', true);
74        ajax.onreadystatechange = function() {
75            if (ajax.readyState == 4) {
76                zobraz(ajax.responseText, vystupniPole);
77                zobraz('', stavovePole);
78            }
79        };
80        ajax.send(null);
81    }
82}
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.