我的ajax调用没有从PHP/Mysql中提取动态数据

My ajax call not pulling in dynamic data from PHP/Mysql

本文关键字:Mysql 提取 动态 数据 PHP 调用 ajax 我的      更新时间:2023-09-26

你好:我正在做一个项目,在这个项目中,我将把联盟中的分区列为页面上的按钮。当你点击一个按钮时,每个分区都会显示不同的团队列表。所有部门和团队都存储在mysql数据库中,并通过"div_id"链接在一起。计划是让按钮使用javascript或Jquery发送"div_id"到一个函数;然后使用ajax访问一个外部php文件,然后使用div_id查找该部门的所有团队,并将其打印在页面上。我一直在将所有这些拼凑在一起,并使各个部分发挥作用。但当我将它们放在一起时,ajax部分似乎不会在数据更改时从数据库中提取新数据。事实上,如果我更改e PHP文件以回显更多的数据或其他什么,它会继续使用原始的未更改文件。因此,如果数据发生了更改,则不会更新,如果文件发生了更改则不会更新。我确实发现,如果我真的用新名称复制了文件,然后让我的ajax调用使用该文件;它将使用新代码和当时的新数据来运行它。但现在一切都被锁定在那个点上,无法得到任何改变。

所以,我对ajax和尝试这样做不太了解。我不确定这对于我正在使用的内容和动态变化的团队列表来说是否完全正常,ajax调用PHP文件是不能做到这一点的。

或者——也许我的ajax代码和文件有问题,导致它以这种方式运行?我将粘贴我的ajax代码和php文件的代码…

这是ajax调用:

var answer = DivId;
$.ajax({
type: 'GET',
url:  'path_to_file/gscript2.php',
data: 'answer=' + answer,
success: function(response) {
    $('#ajax_content').html(response);
}
});

这是它调用的script.php文件(已删除数据库凭据):

<?php
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
    && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
) {
    // AJAX request
    $answer = $_GET['answer'];
    $div_id=$answer;
    echo "div id is: " . $div_id . "<br/>";


mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database!       Please try again later.');
mysql_select_db($dbname);
$result_g1 = mysql_query("SELECT * FROM teams WHERE div_id=$div_id");
while($row = mysql_fetch_array($result_g1, MYSQL_BOTH))
{
$team_id=$row[team_id];
$team_name=$row[team_name];
echo $team_id . " " . $team_name . "<br/>";
}

}
?>

总之,让它这么做有什么不对吗?还是它正在做的事情完全正常,我必须找到一种不同的方式?

非常感谢。。。

很可能您的浏览器正在缓存。

尝试按如下方式添加cache: false

$.ajax({
    cache: false,
    type: 'GET',
    ...

jQuery文档解释说,通过这样做,它只需添加一个GET参数,使每个请求在URL中都是唯一的。

它的工作原理是将"_={timestamp}"附加到GET参数中。

我相信这是由浏览器的缓存机制引起的。

尝试在请求中添加一个随机数,这样浏览器就不会缓存结果:

var answer = DivId;
$.ajax({
type: 'GET',
url:  'path_to_file/gscript2.php?r=' + Math.random(),
data: 'answer=' + answer,
success: function(response) {
    $('#ajax_content').html(response);
}
});

或者通过以下方式关闭jQuery的缓存选项:

var answer = DivId;
$.ajax({
type: 'GET',
url:  'path_to_file/gscript2.php',
data: 'answer=' + answer,
success: function(response) {
    $('#ajax_content').html(response);
},
cache: false
});

或者(全球):

$.ajaxSetup({ cache: false });