JavaScript HttpRequest 总是返回相同的结果

标签 javascript php html mysql

我有一个 HTML 页面 JavaScript,它将 GET 请求数据发送到 PHP 文件以返回保存在数据库中的所有数据。 PHP 使用 HTML 表格回复 - 效果很好!

但是:如果我单击一个按钮(它调用相同的 JavaScript 函数)来更新我的表以显示新数据,我会得到相同的结果(而且我在表上肯定有新数据)。

如果我通过浏览器手动调用 PHP,它会立即向我显示新结果,此时它也在使用 JavaScript(但只有一次)。

这是我的部分代码。

HTML/JS:

<button onclick="GetData()"></button>
<div id="test"></div>
<script>

    function GetData(){
        var xhttp = new XMLHttpRequest();
        document.getElementById("test").innerHTML = "";
        xhttp.onreadystatechange = function(){
            if (xhttp.readyState == 4 && xhttp.status == 200){
                document.getElementById("test").innerHTML = xhttp.responseText;

            }
        };

        xhttp.open("GET", "../GetData.php", true);

        xhttp.send();
        }

</script>

PHP:

    //DB details
    $dbHost     = 'localhost';
    $dbUsername = 'lalalala';
    $dbPassword = 'lalalalal';
    $dbName     = 'lalalala';

    //Create connection and select DB
    $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName) or die ("UUUUPS");


    $sql = "select name, beschreibung, image, video from data";



    $result = $db->query($sql);


   if ($result->num_rows > 0) {
$return = '<table class ="table table-hover"><thead><tr><th scope="col">Name</th><th scope="col">Beschreibung</th><th scope="col">Bilddatei</th><th scope="col">Video-Url</th></tr></thead><tbody>';
// output data of each row
while($row = $result->fetch_assoc()) {
    $return .= "<tr><td>".$row["name"]."</td><td>".$row["beschreibung"]."</td><td><img src=data:image/png;base64,".base64_encode($row["image"])."/></td><td>".$row["video"]."</tr>";
}
$return .= "</tbody></table>";
 $db->close();
 echo $return;
 } else {
 echo "0 results";
 }

感谢您的帮助!

最佳答案

您的浏览器似乎正在缓存您的结果,这就是您看到数据的原因。 您可以像这样测试它:

var random = Math.floor(Math.random() * 100);
xhttp.open("GET", "../GetData.php?"+random, true);

如果这有帮助,请查看 PHP 脚本中的过期 header 。此外,您进行查询的方式已经过时了。这是一种非常 PHP4 的方式。在这里看看:http://php.net/manual/en/book.mysqli.php

关于JavaScript HttpRequest 总是返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47901217/

相关文章:

javascript - 如何创建像 SQL 小数类型一样匹配 (p,s) 精度和小数位数的正则表达式?

javascript - 如何使用 iframe 编写可调整大小的页面?

php - MySQL语句如果数字小于php变量

php - 使用 mysqli_query 的长文本最大内存错误

javascript - 带有回调函数的图像下拉列表

javascript 匿名函数

javascript - 如何将标签 "a"中数据库中的值插入到属性 href

javascript - 从具有相同名称行的多个下拉列表中获取值

html - 使段落的一部分环绕在 float 图像上方

html - 连续 10 个 div,每个 10%