AJAX – zatím jen demo: načítání tabulky ze souboru do výstupního pole.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 23 May 2009 20:16:03 +0200
changeset 226a11fc8e3e4
parent 1 6dced8dcb2e6
child 3 35e9706113b0
AJAX – zatím jen demo: načítání tabulky ze souboru do výstupního pole.
html/ahoj.html
html/hlavni.js
html/index.html
html/styl.css
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/html/ahoj.html	Sat May 23 20:16:03 2009 +0200
     1.3 @@ -0,0 +1,85 @@
     1.4 +<table>
     1.5 +    <thead>
     1.6 +        <tr>
     1.7 +            <td>Sloupeček 1</td>
     1.8 +            <td>Sloupeček 2</td>
     1.9 +            <td>Sloupeček 3</td>
    1.10 +            <td>Sloupeček 4</td>
    1.11 +        </tr>
    1.12 +    </thead>
    1.13 +    <tbody>
    1.14 +        <tr>
    1.15 +            <td>Hodnota 1</td>
    1.16 +            <td>Hodnota 2</td>
    1.17 +            <td>Hodnota 3</td>
    1.18 +            <td class="cislo">1234,56</td>
    1.19 +        </tr>
    1.20 +        <tr>
    1.21 +            <td>Hodnota 1</td>
    1.22 +            <td>Hodnota 2</td>
    1.23 +            <td>Hodnota 3</td>
    1.24 +            <td class="cislo">1234,56</td>
    1.25 +        </tr>
    1.26 +        <tr>
    1.27 +            <td>Hodnota 1</td>
    1.28 +            <td>Hodnota 2</td>
    1.29 +            <td>Hodnota 3</td>
    1.30 +            <td class="cislo">1234,56</td>
    1.31 +        </tr>
    1.32 +        <tr>
    1.33 +            <td>Hodnota 1</td>
    1.34 +            <td>Hodnota 2</td>
    1.35 +            <td>Hodnota 3</td>
    1.36 +            <td class="cislo">1234,56</td>
    1.37 +        </tr>
    1.38 +        <tr>
    1.39 +            <td>Hodnota 1</td>
    1.40 +            <td>Hodnota 2</td>
    1.41 +            <td>Hodnota 3</td>
    1.42 +            <td class="cislo">1234,56</td>
    1.43 +        </tr>
    1.44 +        <tr>
    1.45 +            <td>Hodnota 1</td>
    1.46 +            <td>Hodnota 2</td>
    1.47 +            <td>Hodnota 3</td>
    1.48 +            <td class="cislo">1234,56</td>
    1.49 +        </tr>
    1.50 +        <tr>
    1.51 +            <td>Hodnota 1</td>
    1.52 +            <td>Hodnota 2</td>
    1.53 +            <td>Hodnota 3</td>
    1.54 +            <td class="cislo">1234,56</td>
    1.55 +        </tr>
    1.56 +        <tr>
    1.57 +            <td>Hodnota 1</td>
    1.58 +            <td>Hodnota 2</td>
    1.59 +            <td>Hodnota 3</td>
    1.60 +            <td class="cislo">1234,56</td>
    1.61 +        </tr>
    1.62 +        <tr>
    1.63 +            <td>Hodnota 1</td>
    1.64 +            <td>Hodnota 2</td>
    1.65 +            <td>Hodnota 3</td>
    1.66 +            <td class="cislo">1234,56</td>
    1.67 +        </tr>
    1.68 +        <tr>
    1.69 +            <td>Hodnota 1</td>
    1.70 +            <td>Hodnota 2</td>
    1.71 +            <td>Hodnota 3</td>
    1.72 +            <td class="cislo">1234,56</td>
    1.73 +        </tr>
    1.74 +        <tr>
    1.75 +            <td>Hodnota 1</td>
    1.76 +            <td>Hodnota 2</td>
    1.77 +            <td>Hodnota 3</td>
    1.78 +            <td class="cislo">1234,56</td>
    1.79 +        </tr>
    1.80 +        <tr>
    1.81 +            <td>Hodnota 1</td>
    1.82 +            <td>Hodnota 2</td>
    1.83 +            <td>Hodnota 3</td>
    1.84 +            <td class="cislo">1234,56</td>
    1.85 +        </tr>
    1.86 +    </tbody>
    1.87 +</table>
    1.88 +<p>Ahoj. Právě jsi zmáčknul tlačítko :-)</p>
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/html/hlavni.js	Sat May 23 20:16:03 2009 +0200
     2.3 @@ -0,0 +1,59 @@
     2.4 +/**
     2.5 + * Aby to fungovalo i v MSIE 6.
     2.6 + * @return AJAXový objekt.
     2.7 + */
     2.8 +function getXmlHttpRequestObject() {
     2.9 +    if (window.XMLHttpRequest) {
    2.10 +        return new XMLHttpRequest();
    2.11 +    } else if(window.ActiveXObject) {
    2.12 +        return new ActiveXObject("Microsoft.XMLHTTP");
    2.13 +    } else {
    2.14 +        alert("Váš prohlížeč nepodporuje AJAX. Pořiďte si méně zastaralý prohlížeč, nejlépe Firefox.");
    2.15 +        return null;
    2.16 +    }
    2.17 +}
    2.18 +
    2.19 +/** Náš AJAXový objekt. */
    2.20 +var ajax = getXmlHttpRequestObject();
    2.21 +
    2.22 +/**
    2.23 + * Zobrazí text na požadovaném místě.
    2.24 + * @param text text k zobrazení
    2.25 + * @param kde id prvku, do kterého se má text vypsat
    2.26 + **/
    2.27 +function zobraz(text, kde) {
    2.28 +    document.getElementById(kde).innerHTML = text;
    2.29 +}
    2.30 +
    2.31 +/**
    2.32 + * Zobrazí text ve výstupním poli.
    2.33 + * @param text text k zobrazení
    2.34 + **/
    2.35 +function zobrazVystup(text) {
    2.36 +    zobraz(text, 'vystupniPole');
    2.37 +}
    2.38 +
    2.39 +/**
    2.40 + * Zobrazí text ve poli pro nápovědu.
    2.41 + * @param text text k zobrazení
    2.42 + **/
    2.43 +function zobrazNapovedu(text) {
    2.44 +    zobraz(text, 'napovedniPole');
    2.45 +}
    2.46 +
    2.47 +/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
    2.48 +function demo() {
    2.49 +    if (ajax.readyState == 4 || ajax.readyState == 0) {
    2.50 +        ajax.open("GET", 'ahoj.html', true);
    2.51 +        ajax.onreadystatechange = demoVypis;
    2.52 +        ajax.send(null);
    2.53 +    }
    2.54 +    //zobrazNapovedu('Nějaká nápověda k danému příkazu.');
    2.55 +}
    2.56 +
    2.57 +/** Pomocná funkce – postará se o vypsání v pravou chvíli. */
    2.58 +function demoVypis() {
    2.59 +    if (ajax.readyState == 4) {
    2.60 +        zobrazVystup(ajax.responseText);
    2.61 +    }
    2.62 +}
     3.1 --- a/html/index.html	Sat May 23 17:47:39 2009 +0200
     3.2 +++ b/html/index.html	Sat May 23 20:16:03 2009 +0200
     3.3 @@ -5,6 +5,7 @@
     3.4          <meta http-equiv="content-language" content="cs"/>
     3.5          <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
     3.6          <link href="styl.css" type="text/css" rel="StyleSheet"/>
     3.7 +        <script type="text/javaScript" src="hlavni.js"></script>
     3.8          <title>SQL: pojďte si hrát!</title>
     3.9      </head>
    3.10      <body>
    3.11 @@ -14,7 +15,7 @@
    3.12              <div class ="blok" id="napoveda">
    3.13                  <h2>Nápověda</h2>
    3.14                  <div class="vnitrekBloku">
    3.15 -                    <p>lorem ipsum, nějaký text, něco jako latina, ale jiné…</p>
    3.16 +                    <p id="napovedniPole">lorem ipsum, nějaký text, něco jako latina, ale jiné…</p>
    3.17                  </div>
    3.18              </div>
    3.19  
    3.20 @@ -26,7 +27,7 @@
    3.21                      <div class="vnitrekBloku">
    3.22                          <form>
    3.23                              <textarea>SELECT * FROM tabulka;</textarea>
    3.24 -                            <button type="submit">Vykonat SQL!</button>
    3.25 +                            <button type="button" onclick="javascript:demo();">Vykonat SQL!</button>
    3.26                          </form>
    3.27                      </div>
    3.28                  </div>
    3.29 @@ -37,7 +38,7 @@
    3.30  
    3.31                  <div class ="blok" id="vystup">
    3.32                      <h2>Výsledek</h2>
    3.33 -                    <div class="vnitrekBloku">
    3.34 +                    <div class="vnitrekBloku" id="vystupniPole">
    3.35                          <p>
    3.36                              lorem ipsum, nějaký text, něco jako latina, ale jiné…
    3.37                              lorem ipsum, nějaký text, něco jako latina, ale jiné…
     4.1 --- a/html/styl.css	Sat May 23 17:47:39 2009 +0200
     4.2 +++ b/html/styl.css	Sat May 23 20:16:03 2009 +0200
     4.3 @@ -1,15 +1,20 @@
     4.4 +/** Obrázky s odkazem bez rámečku */
     4.5  a img {
     4.6      border: none;
     4.7  }
     4.8  
     4.9 +/** Pozadí stránky a text */
    4.10  html {
    4.11      background: #42afdc;
    4.12      color:black;
    4.13  }
    4.14 +
    4.15 +/** Bezpatkové písmo */
    4.16  body {
    4.17      font-family: sans-serif;
    4.18  }
    4.19  
    4.20 +/** Prostor pro logo a název programu */
    4.21  #zahlavi {
    4.22      height: 48px;
    4.23  
    4.24 @@ -39,8 +44,9 @@
    4.25  
    4.26  #vstup textarea {
    4.27      width: 640px;
    4.28 -    height: 110px;
    4.29 +    height: 108px;
    4.30      padding: 8px;
    4.31 +    border: 1px solid silver;
    4.32  }
    4.33  
    4.34  #vstup button {
    4.35 @@ -50,7 +56,8 @@
    4.36      background-image: url('grafika/tlacitko.png');
    4.37      padding: 2px;
    4.38      font-size: 12px;
    4.39 -    margin-right: 3px;
    4.40 +    margin-right: 0px;
    4.41 +    margin-top: 5px;
    4.42  }
    4.43  
    4.44  #vystup .vnitrekBloku {
    4.45 @@ -62,35 +69,69 @@
    4.46      height: 484px;
    4.47  }
    4.48  
    4.49 +/** Nadpisy bloků */
    4.50  .blok h2 {
    4.51 -    font-size: medium;
    4.52 +    font-size: 12px;
    4.53      padding: 2px;
    4.54 +    padding-top: 4px;
    4.55      padding-left: 32px;
    4.56      margin: 0px;
    4.57      color: gray;
    4.58 +    height: 20px;
    4.59  }
    4.60  
    4.61  #napoveda h2 {
    4.62      background-image: url('grafika/blok-nadpis-320.png');
    4.63  }
    4.64  
    4.65 +/** Vstupně-výstupní část */
    4.66 +#io {
    4.67 +    float: left;
    4.68 +}
    4.69 +
    4.70  #io h2 {
    4.71      background-image: url('grafika/blok-nadpis-680.png');
    4.72  }
    4.73  
    4.74 -#io {
    4.75 -    float: left;
    4.76 -}
    4.77 -
    4.78 +/** Blok vstupu */
    4.79  #vstup {
    4.80      width: 680px;
    4.81  }
    4.82  
    4.83 +/** Blok výstupu */
    4.84  #vystup {
    4.85      width: 680px;
    4.86  }
    4.87  
    4.88 +/** Blok nápovědy */
    4.89  #napoveda {
    4.90      float: right;
    4.91      width: 320px;
    4.92 -}
    4.93 \ No newline at end of file
    4.94 +}
    4.95 +
    4.96 +/** Formátování (výstupní) tabulky */
    4.97 +table {
    4.98 +    border: 1px solid green;
    4.99 +    border-collapse:collapse;
   4.100 +}
   4.101 +
   4.102 +td {
   4.103 +    border: 1px solid black;
   4.104 +    padding: 4px;
   4.105 +    padding-left: 8px;
   4.106 +    padding-right: 8px;
   4.107 +}
   4.108 +
   4.109 +td.cislo {
   4.110 +    text-align: right;
   4.111 +}
   4.112 +
   4.113 +thead {
   4.114 +    background: silver;
   4.115 +    font-weight:bold;
   4.116 +}
   4.117 +
   4.118 +thead td a {
   4.119 +    color: black;
   4.120 +    text-decoration: none;
   4.121 +}