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