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).
     1 /** ID html prvků */
     2 const vstupniPole = 'vstupniPole';
     3 const vystupniPole = 'vystupniPole';
     4 const napovedniPole = 'napovedniPole';
     5 
     6 
     7 /**
     8  * Aby to fungovalo i v MSIE 6.
     9  * @return AJAXový objekt.
    10  */
    11 function 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. */
    23 var ajax = getXmlHttpRequestObject();
    24 
    25 /**
    26  * Vrací vstup od uživatele.
    27  * @return SQL příkaz zadaný uživatelem.
    28  **/
    29 function 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  **/
    38 function 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  **/
    50 function 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  **/
    59 function 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  **/
    67 function zobrazNapovedu(text) {
    68     zobraz(text, napovedniPole);
    69 }
    70 
    71 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
    72 function 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ě. */
    89 function 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 }