java/sql-vyuka/web/hlavni.js
author František Kučera <franta-hg@frantovo.cz>
Sat May 30 14:49:07 2009 +0200 (2009-05-30)
changeset 20 47de9e8ce93e
parent 19 2ffdd7be6d5e
child 21 b7574b90e272
permissions -rw-r--r--
Přidání stavového řádku – zobrazuje se v něm hláška o probíhajícím SQL dotazu.
franta-hg@3
     1
/** ID html prvků */
franta-hg@3
     2
const vstupniPole = 'vstupniPole';
franta-hg@3
     3
const vystupniPole = 'vystupniPole';
franta-hg@3
     4
const napovedniPole = 'napovedniPole';
franta-hg@20
     5
const stavovePole = 'stavovePole';
franta-hg@3
     6
franta-hg@3
     7
franta-hg@2
     8
/**
franta-hg@2
     9
 * Aby to fungovalo i v MSIE 6.
franta-hg@2
    10
 * @return AJAXový objekt.
franta-hg@2
    11
 */
franta-hg@2
    12
function getXmlHttpRequestObject() {
franta-hg@2
    13
    if (window.XMLHttpRequest) {
franta-hg@2
    14
        return new XMLHttpRequest();
franta-hg@2
    15
    } else if(window.ActiveXObject) {
franta-hg@2
    16
        return new ActiveXObject("Microsoft.XMLHTTP");
franta-hg@2
    17
    } else {
franta-hg@2
    18
        alert("Váš prohlížeč nepodporuje AJAX. Pořiďte si méně zastaralý prohlížeč, nejlépe Firefox.");
franta-hg@2
    19
        return null;
franta-hg@2
    20
    }
franta-hg@2
    21
}
franta-hg@2
    22
franta-hg@2
    23
/** Náš AJAXový objekt. */
franta-hg@2
    24
var ajax = getXmlHttpRequestObject();
franta-hg@2
    25
franta-hg@2
    26
/**
franta-hg@3
    27
 * Vrací vstup od uživatele.
franta-hg@3
    28
 * @return SQL příkaz zadaný uživatelem.
franta-hg@3
    29
 **/
franta-hg@3
    30
function getSQL() {
franta-hg@11
    31
    return document.aplikace.vstupniPole.value;
franta-hg@3
    32
}
franta-hg@3
    33
franta-hg@3
    34
/**
franta-hg@2
    35
 * Zobrazí text na požadovaném místě.
franta-hg@2
    36
 * @param text text k zobrazení
franta-hg@2
    37
 * @param kde id prvku, do kterého se má text vypsat
franta-hg@2
    38
 **/
franta-hg@2
    39
function zobraz(text, kde) {
franta-hg@19
    40
    if (kde == vstupniPole) {
franta-hg@19
    41
        document.aplikace.vstupniPole.value = text;
franta-hg@20
    42
    } else if (kde == stavovePole)  {
franta-hg@20
    43
        document.aplikace.stavovePole.value = text;
franta-hg@19
    44
    } else {
franta-hg@19
    45
        document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
franta-hg@19
    46
    }
franta-hg@2
    47
}
franta-hg@2
    48
franta-hg@2
    49
/**
franta-hg@2
    50
 * Zobrazí text ve výstupním poli.
franta-hg@20
    51
 * @param text HTML text k zobrazení
franta-hg@2
    52
 **/
franta-hg@2
    53
function zobrazVystup(text) {
franta-hg@3
    54
    zobraz(text, vystupniPole);
franta-hg@2
    55
}
franta-hg@2
    56
franta-hg@2
    57
/**
franta-hg@5
    58
 * Zobrazí text ve vstupním poli.
franta-hg@5
    59
 * Požijeme pro načtení SQL příkazu z historie.
franta-hg@20
    60
 * @param text prostý text k zobrazení
franta-hg@5
    61
 **/
franta-hg@5
    62
function zobrazVstup(text) {
franta-hg@5
    63
    zobraz(text, vstupniPole);
franta-hg@5
    64
}
franta-hg@5
    65
franta-hg@5
    66
/**
franta-hg@20
    67
 * Zobrazí text ve vstupním poli.
franta-hg@20
    68
 * Požijeme pro načtení SQL příkazu z historie.
franta-hg@20
    69
 * @param text prostý text k zobrazení
franta-hg@20
    70
 **/
franta-hg@20
    71
function zobrazStav(text) {
franta-hg@20
    72
    zobraz(text, stavovePole);
franta-hg@20
    73
}
franta-hg@20
    74
franta-hg@20
    75
/**
franta-hg@2
    76
 * Zobrazí text ve poli pro nápovědu.
franta-hg@2
    77
 * @param text text k zobrazení
franta-hg@2
    78
 **/
franta-hg@2
    79
function zobrazNapovedu(text) {
franta-hg@3
    80
    zobraz(text, napovedniPole);
franta-hg@2
    81
}
franta-hg@2
    82
franta-hg@2
    83
/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
franta-hg@5
    84
function ajaxVykonatSQL() {
franta-hg@2
    85
    if (ajax.readyState == 4 || ajax.readyState == 0) {
franta-hg@20
    86
        zobrazStav('Probíhá zpracování SQL příkazu…');
franta-hg@20
    87
        ajax.open("POST", 'ajax?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
franta-hg@19
    88
        ajax.onreadystatechange = function() {
franta-hg@19
    89
            if (ajax.readyState == 4) {
franta-hg@19
    90
                zobrazVystup(ajax.responseText);
franta-hg@20
    91
                zobrazStav('');
franta-hg@19
    92
            }
franta-hg@19
    93
        };
franta-hg@2
    94
        ajax.send(null);
franta-hg@2
    95
    }
franta-hg@2
    96
}
franta-hg@5
    97
franta-hg@5
    98
franta-hg@5
    99
/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
franta-hg@5
   100
function ajaxZobrazitHistorii() {
franta-hg@5
   101
    if (ajax.readyState == 4 || ajax.readyState == 0) {
franta-hg@12
   102
        ajax.open("POST", 'ajax?akce=historie', true);
franta-hg@19
   103
        ajax.onreadystatechange = function() {
franta-hg@19
   104
            if (ajax.readyState == 4) {
franta-hg@19
   105
                zobrazVystup(ajax.responseText);
franta-hg@19
   106
            }
franta-hg@19
   107
        };
franta-hg@5
   108
        ajax.send(null);
franta-hg@5
   109
    }
franta-hg@5
   110
}