java/sql-vyuka/web/hlavni.js
author František Kučera <franta-hg@frantovo.cz>
Sat May 30 15:35:10 2009 +0200 (2009-05-30)
changeset 22 e56b79cc18a9
parent 21 b7574b90e272
child 24 dceaaefb1946
permissions -rw-r--r--
JavaScript: lokalizace a zjednodušení.
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@22
    18
        alert(document.lokalizace.nepodporovany.value);
franta-hg@2
    19
        return null;
franta-hg@2
    20
    }
franta-hg@2
    21
}
franta-hg@2
    22
franta-hg@22
    23
franta-hg@2
    24
/** Náš AJAXový objekt. */
franta-hg@2
    25
var ajax = getXmlHttpRequestObject();
franta-hg@2
    26
franta-hg@22
    27
franta-hg@2
    28
/**
franta-hg@3
    29
 * Vrací vstup od uživatele.
franta-hg@3
    30
 * @return SQL příkaz zadaný uživatelem.
franta-hg@3
    31
 **/
franta-hg@3
    32
function getSQL() {
franta-hg@11
    33
    return document.aplikace.vstupniPole.value;
franta-hg@3
    34
}
franta-hg@3
    35
franta-hg@22
    36
franta-hg@3
    37
/**
franta-hg@2
    38
 * Zobrazí text na požadovaném místě.
franta-hg@22
    39
 * @param text text k zobrazení. V případě formulářů prostý text, v ostatních případech HTML text.
franta-hg@22
    40
 * @param kde id prvku, do kterého se má text vypsat.
franta-hg@2
    41
 **/
franta-hg@2
    42
function zobraz(text, kde) {
franta-hg@19
    43
    if (kde == vstupniPole) {
franta-hg@19
    44
        document.aplikace.vstupniPole.value = text;
franta-hg@20
    45
    } else if (kde == stavovePole)  {
franta-hg@20
    46
        document.aplikace.stavovePole.value = text;
franta-hg@19
    47
    } else {
franta-hg@19
    48
        document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
franta-hg@19
    49
    }
franta-hg@2
    50
}
franta-hg@2
    51
franta-hg@2
    52
franta-hg@2
    53
/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
franta-hg@5
    54
function ajaxVykonatSQL() {
franta-hg@2
    55
    if (ajax.readyState == 4 || ajax.readyState == 0) {
franta-hg@22
    56
        zobraz(document.lokalizace.probihaSQL.value, stavovePole);
franta-hg@20
    57
        ajax.open("POST", 'ajax?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
franta-hg@19
    58
        ajax.onreadystatechange = function() {
franta-hg@19
    59
            if (ajax.readyState == 4) {
franta-hg@22
    60
                zobraz(ajax.responseText, vystupniPole);
franta-hg@22
    61
                zobraz('', stavovePole);
franta-hg@19
    62
            }
franta-hg@19
    63
        };
franta-hg@2
    64
        ajax.send(null);
franta-hg@2
    65
    }
franta-hg@2
    66
}
franta-hg@5
    67
franta-hg@5
    68
franta-hg@5
    69
/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
franta-hg@5
    70
function ajaxZobrazitHistorii() {
franta-hg@5
    71
    if (ajax.readyState == 4 || ajax.readyState == 0) {
franta-hg@22
    72
        zobraz(document.lokalizace.probihaHistorie.value, stavovePole);
franta-hg@12
    73
        ajax.open("POST", 'ajax?akce=historie', true);
franta-hg@19
    74
        ajax.onreadystatechange = function() {
franta-hg@19
    75
            if (ajax.readyState == 4) {
franta-hg@22
    76
                zobraz(ajax.responseText, vystupniPole);
franta-hg@22
    77
                zobraz('', stavovePole);
franta-hg@19
    78
            }
franta-hg@19
    79
        };
franta-hg@5
    80
        ajax.send(null);
franta-hg@5
    81
    }
franta-hg@5
    82
}