Autor Zpráva
elleshar
Profil *
Zdravím, mým úkolem je vytvořit webové rozhraní, kde by se automaticky (cca každých 20 vteřin) aktualizovaly údaje (teplota, hladina, atd.), které jsou pravidelně z měřících zařízení posílány na server.
Zatím mám vyřešené jen pravidelné ukládání naměřených dat do databáze pomocí php skriptu, který pravidelně spouštím přes Naplánované úlohy ve Windows. Případná aktualizace dat ve webovém rozhraní je zatím možná jen pomocí refreshe.
Prošel jsem si část knihy o jQuery i některé příklady na webu, ale na nic, co by se blížilo mému problému, jsem nenarazil. Vždy se skript začal provádět po stisknutí nějakého tlačítka, kliknutí myši, změně hodnoty nějakého elementu, ale nikdy ne automaticky s časovou prodlevou.
Možná by to mohlo být podobné tomuto příkladu http://jaknajquery.cz/ajax-a-jquery/ (Příklad 1 – Nahrání obsahu select boxu), ale netuším, jak zajistit pravidelnost spouštění (jestli se na to dá použít nějaká událost jQuery, zde je událost change, nebo jestli pravidelně spouštět skript - pak ale nevím, jestli spouštět javascript nebo php skript).
Děkuji za rady.
Chamurappi
Profil
Reaguji na elleshara:
Na AJAX stačí několikařádková funkce, není třeba jQuery.
Pravidelně opakovat nějakou akci můžeš třeba klasickou metodou setInterval.
elleshar
Profil *
Díky, chtěl bych se ještě zeptat, mám vytvořenou funkci pro vypsání dat ze serveru, které se mi objeví v elementu s id responseText.:

$.post("gw_data.php", {},
        function(data){
            $('#responseText').val(data);
        });    

Dá se nějakým způsobem se získanými daty pracovat? Např. pokud bych měl data typu pole, tak poslat hodnoty pole[0] na #label_0, pole[1] na #label_1, atd.
Děkuji.
Chamurappi
Profil
Reaguji na elleshara:
Posílej si JSON.
elleshar
Profil *
Chamurappi:
Posílám JSON, ze serveru mi přijdou data v této podobě:
{"prvni":"2","druhy":"3","treti":"7","ctvrty":"6"}
ve skriptu.js mám funkci
$.post("gw_data.php", {},
        function(data){
            $('#prvni').val(data.prvni);
            $('#druhy').val(data.druhy);
            $('#treti').val(data.treti);
            $('#ctvrty').val(data.ctvrty);
        });    
ale příslušné elementy se mi hodnotama nenaplní, pouze pokud tam mám $('#prvni').val(data); naplní se element celým polem {"prvni":"2","druhy":"3","treti":"7","ctvrty":"6"}


elleshar:
Už jsem to vyřešil, chybělo mi tam ještě $.parseJSON(data)
_es
Profil
elleshar:
chybělo mi tam ještě $.parseJSON(data)
Stačilo si k tej funkcii prečítať dokumentáciu (http://api.jquery.com/jQuery.post/) a $.parseJSON tam nemuselo byť.

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: