java/sql-vyuka/web/hlavni.js
author František Kučera <franta-hg@frantovo.cz>
Tue Jun 02 01:36:17 2009 +0200 (2009-06-02)
changeset 38 0a865a665698
parent 24 dceaaefb1946
child 39 47551a506850
permissions -rw-r--r--
Průvodce: JavaScript, HTML, CSS.
     1 /** ID html prvků */
     2 const vstupniPole = 'vstupniPole';
     3 const vystupniPole = 'vystupniPole';
     4 const napovedniPole = 'napovedniPole';
     5 const stavovePole = 'stavovePole';
     6 
     7 
     8 /**
     9  * Aby to fungovalo i v MSIE 6.
    10  * @return AJAXový objekt.
    11  */
    12 function getXmlHttpRequestObject() {
    13     if (window.XMLHttpRequest) {
    14         return new XMLHttpRequest();
    15     } else if(window.ActiveXObject) {
    16         return new ActiveXObject("Microsoft.XMLHTTP");
    17     } else {
    18         alert(document.lokalizace.nepodporovany.value);
    19         return null;
    20     }
    21 }
    22 
    23 
    24 /** Náš AJAXový objekt. */
    25 var ajax = getXmlHttpRequestObject();
    26 
    27 
    28 /**
    29  * Vrací vstup od uživatele.
    30  * @return SQL příkaz zadaný uživatelem.
    31  **/
    32 function getSQL() {
    33     return document.aplikace.vstupniPole.value;
    34 }
    35 
    36 
    37 /**
    38  * Zobrazí text na požadovaném místě.
    39  * @param text text k zobrazení. V případě formulářů prostý text, v ostatních případech HTML text.
    40  * @param kde id prvku, do kterého se má text vypsat.
    41  **/
    42 function zobraz(text, kde) {
    43     if (kde == vstupniPole) {
    44         document.aplikace.vstupniPole.value = text;
    45     } else if (kde == stavovePole)  {
    46         document.aplikace.stavovePole.value = text;
    47     } else {
    48         document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
    49     }
    50 }
    51 
    52 
    53 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
    54 function ajaxVykonatSQL() {
    55     if (ajax.readyState == 4 || ajax.readyState == 0) {
    56         zobraz(document.lokalizace.probihaSQL.value, stavovePole);
    57         ajax.open("POST", 'ajax.jspx?akce=vykonat&sql=' + encodeURIComponent(getSQL()), true);
    58         ajax.onreadystatechange = function() {
    59             if (ajax.readyState == 4) {
    60                 zobraz(ajax.responseText, vystupniPole);
    61                 zobraz('', stavovePole);
    62             }
    63         };
    64         ajax.send(null);
    65     }
    66 }
    67 
    68 
    69 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
    70 function ajaxZobrazitHistorii() {
    71     if (ajax.readyState == 4 || ajax.readyState == 0) {
    72         zobraz(document.lokalizace.probihaHistorie.value, stavovePole);
    73         ajax.open("POST", 'ajax.jspx?akce=historie', true);
    74         ajax.onreadystatechange = function() {
    75             if (ajax.readyState == 4) {
    76                 zobraz(ajax.responseText, vystupniPole);
    77                 zobraz('', stavovePole);
    78             }
    79         };
    80         ajax.send(null);
    81     }
    82 }
    83 
    84 var pruvodceAktualniId = 0;
    85 
    86 function ajaxPruvodcePredchozi() {
    87     ajaxPruvodceNaviguj('predchozi', pruvodceAktualniId, null);
    88 }
    89 
    90 function ajaxPruvodceZpet() {
    91     /** TODO: historie navigace */
    92     alert('Tato funkce se teprve připravuje.');
    93 }
    94 
    95 function ajaxPruvodceVpred() {
    96     /** TODO: historie navigace */
    97     alert('Tato funkce se teprve připravuje.');
    98 }
    99 
   100 function ajaxPruvodceNasledujici() {
   101     ajaxPruvodceNaviguj('nasledujici', pruvodceAktualniId, null);
   102 }
   103 
   104 function ajaxPruvodceKod(kod) {
   105     ajaxPruvodceNaviguj('podleKodu', 0, kod);
   106 }
   107 
   108 function ajaxPruvodceId(id) {
   109     ajaxPruvodceNaviguj('podleId', id, null);
   110 
   111 }
   112 
   113 function ajaxPruvodceNaviguj(akcePruvodce, id, kod) {    
   114     if (ajax.readyState == 4 || ajax.readyState == 0) {
   115         ajax.open("POST", 'ajax.jspx?akce=napoveda&pruvodce=' + encodeURIComponent(akcePruvodce) + '&idPruvodce=' + encodeURIComponent(id) + '&kodPruvodce=' + encodeURIComponent(kod), true);
   116         ajax.onreadystatechange = function() {
   117             if (ajax.readyState == 4) {
   118                 zobraz(ajax.responseText, napovedniPole);
   119                 if (document.pruvodceData) {
   120                     pruvodceAktualniId = document.pruvodceData.id.value
   121                 } else {
   122                     pruvodceAktualniId = 0;
   123                 }
   124             }
   125         };
   126         ajax.send(null);
   127     }
   128 // TODO: změnit URL
   129 }