Autor Zpráva
omorok
Profil
Dobrý den,
Předem děkuji za všechna odpovědi a upozorňuji, že nejsem programátor.
Na Raspberry jsem si vytvořil webový server, který mi odchytává data z regulace pro solární systém. Tak nějak jsem to dal dohromady, ale je nepříjemné, že aktualizaci dat na stránkách řeším přes aktualizaci celé stránky přes meta. Hledal jsem a zjistil, že by tyto údaje mohly být aktualizovány např. pomocí JQuery. Něco jsem našel, ale nejsem z toho moudrý. může mi prosím pomoci s tímto?

Zde je index.php

<!DOCTYPE html>
<html lang="cs-cz" dir="ltr">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8"/>
    <link rel="stylesheet" href="layout-style.css" type="text/css" />
    
    <script src="/jquery.min.js"></script>
    <script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
    
    <script language="JavaScript" type="text/JavaScript"></script>
      <title>Náš dům v </title>

    <meta http-equiv="refresh" content="10;URL=http://10.0.0.10">


</head>

<body  id="layout-body">
 <table id="layout">
    
  <tr>
    <td colspan="2" id="bunka-hlavicka"><h6><a href="index.php"><img src="images/titul_glossy.png" alt="Úvodní stránka" border="0"></a></h6></td>
  </tr>
    <tr>
      <td>
    <div id="menu-box">
    <ul id="menu" class="clearfix">
      <li class="first">
            <a class="active" href="index.php">Aktuálně</a></li>
                <li><a href="fve.php">Fotovoltaika</a></li>
                <li><a href="tuv.php">Fototermika</a></li>
                <li><a href="o_dome.php">O Domě</a></li>
        <li><a href="galerie.php">Galerie</a></li>
        <li><a href="o_strankach.php">O Stránkách</a></li>
    </ul>
    </div></td> </tr>

    <tr>
    <td id="schema">

<script type="text/javascript" src="/jscripts/otaceni.js"></script>
<script type="text/javascript" src="http://jqueryrotate.googlecode.com/svn/trunk/jQueryRotate.js"></script>

        <style>
        .omezujici {position: relative}
        .Tkolcss {position: absolute; top: -400px; left: 575px}
        .Ufve2 {position: absolute; top: -228px; left: 825px}
        .Ifve2 {position: absolute; top: -212px; left: 825px}
        .Tzass {position: absolute; top: 140px; left: 240px}
        .Ttepl {position: absolute; top: -170px; left: 280px}
        .Tspat {position: absolute; top: -170px; left: 380px}
        .Pfve2 {position: absolute; top: 10px; left: 850px}
        .Pfved {position: absolute; top: 320px; left: 800px}
        .Pfvemax {position: absolute; top: 370px; left: 800px}
        .cerr {position: absolute; top: -125px; left: 380px}
        .cerobr {position: absolute; top: -125px; left: 292px}
        .Q {position: absolute; top: -420px; left: 575px}
        .QQ {position: absolute; top: -440px; left: 30px}
        .Qmax {position: absolute; top: -440px; left: 280px}
        .Pfve444 {position: absolute; top: 280px; left: 30px}
        .LcelKKF {position: absolute; top: 300px; left: 30px}
        .Q333 {position: absolute; top: 330px; left: 30px}
        .ETcelKKT {position: absolute; top: 350px; left: 30px}
        </style>
    
        <div class="omezujici">

        <span class="Tkolcss">
          <?php
        include("irax.php");
        echo ("$Tkol °C");
        ?>
        </span> 

         <span class="Ufve2">
          <?php
        include("irax.php");
        echo ("$Ufve2 V");
        ?>
         </span> 

         <span class="Ifve2">
          <?php
        include("irax.php");
        echo ("$Ifve2 A");
        ?>
        </span> 

         <span class="Tzass">
          <?php
        include("irax.php");
        echo ("$Tzass °C");
        ?>
        </span> 
         
         <span class="Ttepl">
          <?php
        include("irax.php");
        echo ("$Ttepl °C");
        ?>
        </span> 
                 
         <span class="Tspat">
          <?php
        include("irax.php");
        echo ("$Tspat °C");
        ?>
        </span> 

        <span class="Pfve2">
          <?php
        include("irax.php");
        echo ("$Pfve2 W");
        ?>
        </span> 
         
        <span class="Pfved">
          <?php
        include("irax.php");
        echo ("Dnešní energie: $Pfved Wh");
        ?>
        </span> 
         
        <span class="Pfvemax">
          <?php
        include("irax.php");
        echo ("Dnešní max. výkon: $Pfvemax W");
        ?>
        </span> 
         
        <span class="cerr">
          <?php
        include("irax.php");
        echo ("$cerr");
        ?>
        </span> 


        <div>

        <span class="cerobr">
        <?php
        include("irax.php");
        if( $cer == 1 ):
            echo '<img src="images/cerpadlo1.png" alt="Čerpadlo- solární okruh" border="0" id="image"/>';
        else:
            echo '<img src="images/cerpadlo1.png" alt="Čerpadlo- solární okruh" border="0" />';
        endif;
        ?>
        </span> 

         </div>

        <span class="Q">
          <?php
        include("irax.php");
        echo ("$Q kW");
        ?>
        </span> 
         
        <span class="QQ">
          <?php
        include("irax.php");
        echo ("Dnešní energie: $QQ kWh");
        ?>
        </span> 
         
        <span class="Qmax">
          <?php
        include("irax.php");
        echo ("Dnešní max. výkon: $Qmax kW");
        ?>
        </span> 
         
        <span class="Pfve444">
          <?php
        include("irax.php");
        echo ("Fotovoltaická elektrárna dodala od 1.1.2013: $Pfve444 kWh");
        ?>
        </span> 
         
        <span class="LcelKKF">
          <?php
        include("irax.php");
        echo ("Fotovoltaická elektrárna ušetřila od 1.1.2013: $LcelKKF Kč");
        ?>
        </span> 
         
        <span class="Q333">
          <?php
        include("irax.php");
        echo ("Fototermický systém dodal od 1.1.2013: $Q333 kWh");
        ?>
        </span> 
         
        <span class="ETcelKKT">
          <?php
        include("irax.php");
        echo ("Fototermický systém ušetřil od 1.1.2013: $ETcelKKT Kč");
        ?>
        </span> 
         </div>


    </td>
    </tr>
    


 

  <tr><td colspan="2" id="bunka-paticka">
        <?php 
        include("irax.php");
        echo ("$datum _");
        ?>
        Copyright(C) </td></tr>
  </table>
</body>


 
</html>


A přikládám ještě irax.php (tyto data potřebuji pravidelně automaticky aktualizovat. např. po 10s)

<?php

$datum = StrFTime("%d/%m/%Y %H:%M:%S", Time());

$data= fopen("/dev/shm/www.txt", "r");                    #otevře soubor
$data2 = fgets($data);
fclose($data);
$textpole = explode (",", $data2);                #obsah souboru převedo na "pole" rozčlení podle "," a uloží do proměnné
    
$Ufve = $textpole[0];                                #jednotlivé položky v poli jsou přiřazené proměnným
$Ifve = $textpole[1];
$Tkol = $textpole[2];
$Tzass = $textpole[3];
$Ttepl = $textpole[4];
$Tspat = $textpole[5];
$Pfve = $textpole[6];
$Pfved = $textpole[7];
$Pfvemax = $textpole[8];
$Q = $textpole[9];
$QQ = $textpole[10];
$Qmax = $textpole[11];
$Pfve444 = $textpole[12];
$LcelKKF = $textpole[13];
$Q333 = $textpole[14];
$ETcelKKT = $textpole[15];
$cer = $textpole[16];




if( $cer == 1 ):
    $cerr = "Běží";
else:
    $cerr = "Stojí";
endif;
  
$Ufve2= $Ufve/10;       #Převede se na reálné hodnoty
$Ifve2= $Ifve/100;
$Pfve2= $Pfve/10;


?>

a obrázek webu, jak to celé vypadá:

_es
Profil
omorok:
Hledal jsem a zjistil, že by tyto údaje mohly být aktualizovány např. pomocí JQuery.
Všeobecne pomocou AJAXu, napríklad tejto jednoduchej funkcie: Univerzální funkce pro AJAX. Viď aj Časté potíže, zajímavosti a poučné debaty » Co vlastně je jQuery?. Možno by bolo aj jednoduchšie sprístupniť súbor /dev/shm/www.txt a spracovať ho až v JS - záleží čo v ňom všetko je.
Joker
Profil
_es:
sprístupniť súbor /dev/shm/www.txt a spracovať ho až v JS
Když už ho načítá do proměnných, bylo by asi jednodušší z těch proměnných vyrobit JSON a na klientovi zpracovat to.

Primitivnější varianta by byla mít samostatný skript na generování celého HTML kódu ve kterém se něco mění (tady by to byl asi vnitřek <div class="omezujici">, ještě by se mu muselo přidat nějaké id a zvlášť pořešit datum a čas v patičce, pokud je nutné ho průběžně aktualizovat) a pak si to prostě stáhnout a nacpat do tenprvek.innerHTML. Ale to už se podobá tomu aktualizování celé stránky.
Ještě dodatek, v tom současném kódu je zbytečné volat pokaždé to include("irax.php");, stačí nechat jenom první výskyt.
omorok
Profil
Soubor /dev/shm/www.txt obsahuje data v podobě:

10,20,30,0,40,40,1

Ve skutečnosti je toho více,můžou obsahovat i údaje s desetinnou tečkou např: 50.5
Každou sekundu se aktualizují.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: