Wyświetla wynik naciśnięcia przycisku. Pomysł polega na tym, że odczytuje i zapisuje z pliku, aby użytkownicy różnych przeglądarek mogli zobaczyć ten sam wynik.

Początkowo miałem problemy z dostępem do DOM, ale potem odkryłem, że po pierwszym naciśnięciu przycisku wszystko poniżej mojego skryptu php zostaje wyczyszczone This area doesn't get shown after button click

Łatwym obejściem jest po prostu przeniesienie elementu DOM wyżej, ale ... chcę wiedzieć ...

Dlaczego ten obszar jest usuwany? To tak, jakby traktowano go jak PHP.

//Background Loop
function updateChat(){
            var file = 'word.txt?v=' + Date.now() ;
            var rawFile = new XMLHttpRequest();
            rawFile.open("GET", file, false);
            rawFile.onreadystatechange = function ()
            {
                if(rawFile.readyState === 4)
                {
                    if(rawFile.status === 200 || rawFile.status == 0)
                    {
                        var allText = rawFile.responseText;
                        console.log(allText);
                        document.getElementById("shownword").innerHTML = allText;
                    }
                }
            }
            rawFile.send(null);
    setTimeout(updateChat, 500);
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Random Word Generator</title>

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript"></script>
    <script language="javascript" src="update.js" type="text/javascript"></script>
</head>
<body onload="updateChat();">

<p id=shownword></p>

    <form action="" method="post">
    <input type="submit" name="word"
                class="button" value="Button1" id="button1"/> 
          
        <input type="submit" name="word"
                class="button" value="Button2" id="button2"/> 
    </form>
    
    <?php
    //This function gets called when button is pushed
    function postword(){
        $fp = fopen('word.txt', 'w');
        fwrite($fp, $_POST['word']);
        fclose($fp);
    }
    //When the button is pushed, the function will be called
    if (isset($_POST['word'])) {
        postword();
        return;
    }
    ?>

This area doesn't get shown after button click

</body>
</html>
1
Jonathan Race 3 styczeń 2020, 12:03

1 odpowiedź

Najlepsza odpowiedź

Po prostu usuń „powrót”;

if(isset($_POST['word'])) {
  postword();
  // return;
}
1
Nikhil Gyan 3 styczeń 2020, 09:47