Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
swift week + discount 30
Avatar
Sperhak
Člen
Avatar
Sperhak:8. května 12:21

Ahojte, nedarí sa mi parsovať dáta oddelené čiarkou a následne ich zobrazovať na web stránke.

Zkusil jsem: Udávam príklad fungujúceho kódu, kde sa parsovanie nepoužíva. Web stránka si vyžiada každé 2s dáta zo serveru, ten ich pošle a stránka ich zobrazí.

 <!DOCTYPE html>
<html>
<body>
<center>
<span id="voltage_val">0</span>
</body>
</center>
 <script>
setInterval(function()
{
  getData();
}, 2000);
function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("voltage_val").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "voltage_read", true);
  xhttp.send();
}
</script>
</html>

Chci docílit: Chcel by som aby server posielal viac údajov na jednu požiadavku, čo na strane servera mám vyriešené a dáta posiela vo formáte napr. 55.14,96.19 Len sa mi tieto dáta nedarí rozdeliť a jednotlivo zobraziť. Snažil som sa upravovať nejaký kód z netu no neúspešne. Takto vyzerá moja snaha ktorá nefunguje.

<!DOCTYPE html>
<html>
<body>
<center>
 <span id="data[0]">0</span> <br />
  <span id="data[1]">0</span> <br />
  <span id="data[2]">0</span>  <br />
</body>

</center>

  <script>
setInterval(function()
{
  getData();
}, 2000);
function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      dataArray = parse(this.responseText);
    }
  };
  xhttp.open("GET", "voltage_read", true);
  xhttp.send();
}

function parse(string) {
    var array = [];
    var lines = string.split("\n");
    for (var i = 0; i < lines.length; i++) {
        var data = lines[i].split(",", 3);
        data[0] = parseFloat(data[0]);
        data[1] = parseFloat(data[1]);
        data[2] = data[0] * data[1];
        array.push(data);
    }
    return array;
}

</script>
</html>
 
Odpovědět
8. května 12:21
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:8. května 19:17

konzola a console.log v jednotlivych krocich ti vypisuje co?
Zkousel sis udelat jednoduchy priklad?
Ja jo, parsovanci cast, zda se, funguje. Chybu mas asi jinde

<script>
var string = "1,2,3\n4,5,6\n7,8,9";
    var array = [];
    var lines = string.split("\n");
console.log(lines)
    for (var i = 0; i < lines.length; i++) {
        var data = lines[i].split(",", 3);
console.log(data, 'data-IN')
        data[0] = parseFloat(data[0]);
        data[1] = parseFloat(data[1]);
        data[2] = data[0] * data[1];
        array.push(data);
console.log(array[array.length-1], 'array-OUT')
    }
    console.log(array);

/*
Array(3) [ "1", "2", "3" ]
 data-IN js-parse.htm:8:9
Array(3) [ 1, 2, 2 ]
 array-OUT js-parse.htm:13:9
Array(3) [ "4", "5", "6" ]
 data-IN js-parse.htm:8:9
Array(3) [ 4, 5, 20 ]
 array-OUT js-parse.htm:13:9
Array(3) [ "7", "8", "9" ]
 data-IN js-parse.htm:8:9
Array(3) [ 7, 8, 56 ]
 array-OUT
*/
</script>
Editováno 8. května 19:18
 
Nahoru Odpovědět
8. května 19:17
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:8. května 19:22

do dataArray davas vysledek a s tim pak delas co? ten samotny request ti funguje? Ten totiz funguje, kdyz se to spousti pres server, localhost-server, jen ne file:// . Pres file to funguje jen, kdyz ostranis ==4 nebo ==200 jednu z tech podminek, ted si nejsem jisty, kterou.

 
Nahoru Odpovědět
8. května 19:22
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Sperhak
Člen
Avatar
Odpovídá na Peter Mlich
Sperhak:8. května 19:54

Ahoj, konzolu nepoužívam, lebo na písanie používam pspad a tam som to ešte neobjavil, čo by si mi odporučil na písanie kódu?
No data by som chcel vypísať na stránke používam nato tieto riadky

<span id="data[0]">0</span> <br />
 <span id="data[1]">0</span> <br />
 <span id="data[2]">0</span>  <br />

ale asi je to zle. No v tom array tie dáta sú ako to tam máš aj ty, ale potreboval by som ich rozdeliť tak aby som to vedel jednotlivo vypísať cez ten span.

Ano request funguje.

Editováno 8. května 19:56
 
Nahoru Odpovědět
8. května 19:54
Avatar
Sperhak
Člen
Avatar
Sperhak:8. května 22:45

Tak už mi to funguje. Prikladám funkčný kód.

  <script>
setInterval(function()
{
  getData();
}, 2000);
function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      dataArray = parse(this.responseText);
    }
  };
  xhttp.open("GET", "voltage_read", true);
  xhttp.send();
}

function parse(string) {
    var array = [];
    var lines = string.split("\n");
console.log(lines)
    for (var i = 0; i < lines.length; i++) {
        var data = lines[i].split(",", 3);
console.log(data, 'data-IN')
        data[0] = parseFloat(data[0]);
        data[1] = parseFloat(data[1]);
        data[2] = data[0] * data[1];
        array.push(data);
console.log(array[array.length-1], 'array-OUT')
    }
    console.log(array);
document.getElementById("data[0]").innerHTML = data[0];
document.getElementById("data[1]").innerHTML = data[1];
document.getElementById("data[2]").innerHTML = data[2];
}
</script>
 
Nahoru Odpovědět
8. května 22:45
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9. května 8:27

Cili, jsi tam nemel zadny kod, ktery to prepisuje do tech spanu :) Tak to je pak tezke :)

 
Nahoru Odpovědět
9. května 8:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.