root/java/sql-vyuka/web/hlavni.js @ 19:2ffdd7be6d5e

Revision 19:2ffdd7be6d5e, 2.6 KB (checked in by František Kučera <franta-hg@…>, 15 years ago)

JavaScript?: zjednodušení funkcí + zobrazování hlášky o probíhajícím SQL dotazu (hodí se u těch, které trvají dlouho).

Line 
1/** ID html prvků */
2const vstupniPole = 'vstupniPole';
3const vystupniPole = 'vystupniPole';
4const napovedniPole = 'napovedniPole';
5
6
7/**
8 * Aby to fungovalo i v MSIE 6.
9 * @return AJAXový objekt.
10 */
11function getXmlHttpRequestObject() {
12    if (window.XMLHttpRequest) {
13        return new XMLHttpRequest();
14    } else if(window.ActiveXObject) {
15        return new ActiveXObject("Microsoft.XMLHTTP");
16    } else {
17        alert("Váš prohlížeč nepodporuje AJAX. Pořiďte si méně zastaralý prohlížeč, nejlépe Firefox.");
18        return null;
19    }
20}
21
22/** Náš AJAXový objekt. */
23var ajax = getXmlHttpRequestObject();
24
25/**
26 * Vrací vstup od uživatele.
27 * @return SQL příkaz zadaný uživatelem.
28 **/
29function getSQL() {
30    return document.aplikace.vstupniPole.value;
31}
32
33/**
34 * Zobrazí text na požadovaném místě.
35 * @param text text k zobrazení
36 * @param kde id prvku, do kterého se má text vypsat
37 **/
38function zobraz(text, kde) {
39    if (kde == vstupniPole) {
40        document.aplikace.vstupniPole.value = text;
41    } else {
42        document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
43    }
44}
45
46/**
47 * Zobrazí text ve výstupním poli.
48 * @param text text k zobrazení
49 **/
50function zobrazVystup(text) {
51    zobraz(text, vystupniPole);
52}
53
54/**
55 * Zobrazí text ve vstupním poli.
56 * Požijeme pro načtení SQL příkazu z historie.
57 * @param text text k zobrazení
58 **/
59function zobrazVstup(text) {
60    zobraz(text, vstupniPole);
61}
62
63/**
64 * Zobrazí text ve poli pro nápovědu.
65 * @param text text k zobrazení
66 **/
67function zobrazNapovedu(text) {
68    zobraz(text, napovedniPole);
69}
70
71/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
72function ajaxVykonatSQL() {
73    if (ajax.readyState == 4 || ajax.readyState == 0) {
74        sql = getSQL();
75        zobrazVstup('Probíhá zpracování SQL příkazu…');
76        ajax.open("POST", 'ajax?akce=vykonat&sql=' + encodeURIComponent(sql), true);
77        ajax.onreadystatechange = function() {
78            if (ajax.readyState == 4) {
79                zobrazVystup(ajax.responseText);
80                zobrazVstup(sql);
81            }
82        };
83        ajax.send(null);
84    }
85}
86
87
88/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
89function ajaxZobrazitHistorii() {
90    if (ajax.readyState == 4 || ajax.readyState == 0) {
91        ajax.open("POST", 'ajax?akce=historie', true);
92        ajax.onreadystatechange = function() {
93            if (ajax.readyState == 4) {
94                zobrazVystup(ajax.responseText);
95            }
96        };
97        ajax.send(null);
98    }
99}
Note: See TracBrowser for help on using the browser.