PHP Jquery AJAX 间隔返回奇怪的数据

问题描述 投票:0回答:0

我正在为当地一家供暖、通风和空调(HVAC 公司)建立一个门户网站,将工作分配给他们的技术人员。

它使用大量 Jquery ajax ($.post) 来查询不同类型的数据,因为他们将有多个人积极查看工作(技术人员和管理人员)。

这样的 ajax 查询给我带来了一个奇怪的问题。它显示作业的当前状态(已计划、正在进行、正在进行中等)。

更改后,它将其保存到数据库,ajax 查询它并将更新的版本放在页面上,但是当他们查看其他作业时,它会开始切换到所有访问过的作业的状态。

我让它每 5 秒查询一次数据库,每次查询时,它都会在它们之间快速切换,停留几秒钟,然后切换回来(最初显示作业 1 的统计数据,快速切换到作业 2 的统计数据,然后切换到作业 3 )约3秒然后重新开始切换)。

这是我编写的一些代码。 JQuery 中列出的 PHP 变量在脚本的开头说明,因为它们也在其他区域中使用。我一直在用头撞键盘,但找不到任何问题。

JQuery

function updateStatus(){
    var jobCode = null;
    var jobCode = <?= (int)$jobCode; ?>;
    var companyid = <?= (int)$companyID; ?>;
    $.post("/config/ajax/autorun/updateStatus.php", {job_code: jobCode, company_id: companyid})
    .done(function(data){
        $(".status").html("Update Status - AJAX - JC-" + jobCode + " - PHP <?= (int)$jobCode; ?> - " + data);
    });
}
$(document).ready(function(){
    setInterval(updateStatus,5000);
});

PHP

include("../../databaseInfo.php");
$companyID = (int)$_POST['company_id'];
$jobCode = (int)$_POST['job_code'];

$sql = sprintf(
    "SELECT stat_name FROM statuses INNER JOIN jobs ON jobs.job_status = statuses.stat_id WHERE jobs.job_company = %d AND jobs.job_code = %d", 
     $companyID,
     $jobCode,
);
$result = $conn->query($sql);

$status = null;
if ($row = $result->fetch_assoc()) {
    $status = explode(' ', $row['stat_name'], 2)[1] ?? null;
}

echo $status;

此外,这是一个5秒的视频,讲述正在发生的事情

php jquery ajax
© www.soinside.com 2019 - 2024. All rights reserved.