NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Zobrazovanei a aktualizovanie data z php

V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Marek Burda
Člen
Avatar
Marek Burda:8.5.2017 11:15

Ahoj mám tento jednoduchý kód :) - v skutočnosti to bude premenná zo selectom z databáze

<?php
$attr = "1";
?>

Mojim cieľom je tento $attr vypisovať pomocou JS bez refreshovania stránky, no potrebujem aby sa tieto dáta vypisovali aktuálne. Takže ak zmením tieto dáta v sql databáze, automaticky sa napr o 3 sekudny zmenia aj na stránke bez toho aby som musel refreshovať stránku. Snažil som sa nájsť nejaké návody no všade je to robené štýlom čítania dát z druhého súboru. Je to nutnosťou ? Nemôžem mať premennú určenú v rovnakom súbore ako je aj napísaný JS ? Takže by som bol rád ak by ste mi pomohli nájsť nejaký jednoduchý kód na tento výpis. DˇAkujem veľmi pekne

 
Odpovědět
8.5.2017 11:15
Avatar
Robert Poč
Člen
Avatar
Robert Poč:9.5.2017 13:23

Javascript běží na klientovi (internetový prohlížeč), PHP kód běží na serveru. Klient se zeptá na data serveru (PHP) = ANO - "štýl čítania dát z druhého súboru je to nutnosťou".

 
Nahoru Odpovědět
9.5.2017 13:23
Avatar
Pavol Hejný
Tvůrce
Avatar
Odpovídá na Marek Burda
Pavol Hejný:9.5.2017 13:38

Tuhle funkcionalitu můžeš umístit i do jednoho PHP souboru, jen ho musíš rozdělit na tu část co vrací html stránku a na tu, co vrací hodnotu z databáze - např. pomocí GET parametru:

<?php

if(isset($_GET['api'])){
        $attr = "1";
        echo $attr;
}else{
?>
<!DOCTYPE html>
<html lang="cs" dir="ltr">
  <head>
    <meta charset="UTF-8">
    <title>Title</title>
  </head>
  <body>


<div id="attr"></div>
<script>
function refresh() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     document.getElementById("attr").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "?api", true);
  xhttp.send();
}

setInterval(refresh,3000);
</script>


  </body>
</html>
<?php
}

?>
Nahoru Odpovědět
9.5.2017 13:38
/^(web )?(app )?developer$/
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 3 zpráv z 3.