Untitled

mail@pastecode.io avatar
unknown
php
2 years ago
3.0 kB
21
Indexable
Never
<?php
    class Book {
        public $id;
        public $title;
        public $author;
        public $year;

        public function __construct($id, $title, $author, $year) {
            $this->id = $id;
            $this->title = $title;
            $this->author = $author;
            $this->year = $year;
        }
    }
?>

<?php
    require_once 'book.php';
    $book = new Book(1, "Title", "Author", "Year");

    $jsonBook = json_encode($book);
    echo $jsonBook;
    echo "<br><br>";
    $bookFromJson = json_decode($jsonBook);
    echo $bookFromJson->title;

    
?>

// ---------------------------------------------------------------
// ---------------------------------------------------------------

Asinhroni Javaskript i XML. Koristi XMLHttpRequest koji je ugradjen u pretrazivac kako bi trazio podatke od servera, a za prikaz tih podataka
koristi javascript i html. Omogucava nam da osvezimo prikaz strane asinhrono, odnosno da posaljemo zahtev serveru i nastavimo sa radom. Kada server obradi zahtev, on pravi
response za nas (npr. neki objekat je spakovao u json) i salje nam taj odgovor. Kada stigne odgovor, obradjujemo ga uz pomoc javascripta.

readyState je promenljiva koja cuva stanje xmlHttpRequest-a.
-onreadystatechange property definise funkciju koja ce da se izvrsi kada se promeni status/stanje XMLHttpRequest-a.
readyState ima 5 stanja: nije napravljen request, ostvarena konekcija sa serverom, server primio zahtev, server obradjuje zahtev, zahtev obradjen i odgovor je spreman
status ima 3 vrednosti: 200, 403, 404

<body>
    
    <?php
        if (isset($_GET['dajBroj']))
        {
            $broj = rand($_GET['min'], $_GET['max']);
            echo $broj;
            return;
        }
    ?>


    <p id="randomVal"></p>
    Min: <input type="number" id="minVal" value="0">
    <br>
    Max: <input type="number" id="maxVal" value="10">
    <br>
    <button onclick="posaljiZahtev()">Klik</button>
    <script>
        function posaljiZahtev()
        {
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {

                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("randomVal").innerHTML = this.responseText;
                }

            };

            minVal = document.getElementById("minVal").value;
            maxVal = document.getElementById("maxVal").value;

            //GET ZAHTEV
            xhttp.open("GET", "index.php?dajBroj&min=" + minVal +"&max=" + maxVal, true);
            xhttp.send();
            
            //POST ZAHTEV
            /*
            xhttp.open("POST", "index.php", true);
            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhttp.send("dajBroj&min=" + minVal + "&max=" + maxVal);
            */
        }
    </script>
</body>

// ------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------