【问题标题】:Ajax MySQL query does not return current dataAjax MySQL 查询不返回当前数据
【发布时间】:2017-07-20 10:18:47
【问题描述】:

我想编写一个从 MySQL 数据库返回数据的 Ajax 请求。但它不能正常工作,因为如果数据发生了变化,Ajax 请求不会返回 mysql 数据库的当前值。相反,它总是返回数据库的旧数据。 php 文件工作正常,如果我在浏览器中打开它,它会显示正确的当前数据值。我发现,如果我首先在浏览器中手动打开 php 文件,Ajax 请求只会显示正确的当前数据值。如果我再次使用 ajax 请求,它会返回正确的当前数据。我做错了什么?

这是 Ajax 请求的代码:

var scannedTubes = (function() {
  var tmp = null;
  $.ajax({
    async: false,
    url: "ajaxtest.php",

    success: function(response) {
      alert("RESPONSE: " + response);
      tmp = response;
    },
    error: function(jqXHR, textStatus, errorThrown) {
      alert(errorThrown);
    }
  });
  return tmp;
})();

ajaxtest.php文件的代码如下:

<?php
    $con = mysqli_connect("", "root");
    if(mysqli_connect_errno()){
        echo "FAIL: " . mysqli_connect_error();
    }                       

    mysqli_select_db($con, "multitubescan");

    $queryStr = "SELECT code FROM scan WHERE row = 0 AND code <> 'EMPTY'";

    $res = mysqli_query($con, $queryStr);

    $num = mysqli_num_rows($res);

    $scannedTubes = "";

    while($data = mysqli_fetch_assoc($res)){
        $scannedTubes = $scannedTubes . " " . $data["code"];
    }

    $scannedTubes = $num . " " . $scannedTubes;

    mysqli_close($con);

    echo $scannedTubes;    
?>

【问题讨论】:

  • 尝试将ajax缓存设置为false $.ajaxSetup({cache:false});在您的 ajax 请求之前。
  • 非常感谢!效果很好:)

标签: javascript php mysql ajax


【解决方案1】:

我想你的浏览器缓存了数据。 使网址唯一:

url: "ajaxtest.php",

url: "ajaxtest.php?rnd=" + Math.random() ,

【讨论】:

  • jQuery 可以为您做到这一点:cache: false :)
猜你喜欢
  • 1970-01-01
  • 2022-12-29
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多