【发布时间】: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