Как обновить данные ajax

У меня есть БД с таблицей units, где содержится информация о людях.

У меня есть файл functions.php со множеством MySQL-запросов. Среди них есть запрос всех живых людей:

$sql5 = "SELECT * FROM `units` WHERE alive = 1";
$result5 = mysqli_query($database, $sql5);
$alives = mysqli_fetch_all($result5, MYSQLI_ASSOC);

Далее в файле index.php у меня через foreach выводятся все люди, внутри каждой строки передаются атрибуты для ajax (атрибутов много, но для удобства я оставил только несколько главных):

foreach($alives as $alive):?>
 
<span data-name='<?=$alive['name'];?>' data-family=<?=$alive['family'];?> data-firma=<?=$alive['firma'];?>'>
 
<?=$alive['name'].' '.$alive['family'].' '.$alive['age'].' лет.';?>
 
</span>
 
<? endforeach;?>

Далее есть файл js, где при клике на строку происходит ajax-запрос:

$.ajax({
type: "GET",
url: "obrabotka.php",
data: {name: this.dataset.name, family: this.dataset.family, firma: this.dataset.firma},
success: function(data) {
                names.innerHTML = data.name;
                families.innerHTML = data.family;
                firmas.innerHTML = data.firma;
             }
 })

Собственно, сам файл-обработчик obrabotka.php:

$catalog = [
    'name' => $_GET['name'],
    'family' => $_GET['family'],
    'firma' => $_GET['firma']
];
 
exit(json_encode($catalog));

И все это выводится в ДОПОЛНИТЕЛЬНОЕ (запомните это слово) окно:

<div class="unityear">
   <span class="names"></span>
   <span class="families"></span>
   <span class="firmas"></span>
 
   <div class="knopki">
           <form action="unit.php" method="POST" class="form">
                 <input type="hidden" class="idi" name="id"></input>
                 <input type="submit" class="rezume" value="Нанять">
                 <input type="submit" class="uvolen" name="uvolen" id="uvolen" value="Уволить">
                 <input type="submit" class="school" value="Переучить">
            </form>
      </div>
   </div>
 
   <span class="populations"></span> // это не в ДОПОЛНИТЕЛЬНОМ окне, тут проблем нет

Тут, как вы заметили, есть кнопки. Пока что сделал только одну кнопку - уволить. Вот, что происходит в файле-обработчике unit.php, когда на нее нажимаешь:

if(isset($_POST["uvolen"])){ $user_id = $_POST['id'];

$_SESSION['id'] = $user_id;

// Запоминается фирма, в которой работал юнит
$sql404 = "SELECT * FROM `units` WHERE id = '$user_id'";
$result404 = mysqli_query($database, $sql404);
$this_user = mysqli_fetch_all($result404, MYSQLI_ASSOC);

$_SESSION['firma'] = $this_user[0]['firma'];

// Увольняем юнита 
mysqli_query($database, "UPDATE `units` SET `firma` = 'Безработный' WHERE id = '$user_id'");

header('location: index.php'.$_SERVER['HTTP_REFERER']);
exit;
?>

При этом при нажатии на ту же кнопку в файле js выполняется ajax-запрос:

   $('#uvolen').click (function(){
   $.get(
            'settings.php',
            function(data){
                $('#firma').text(data[0]); //фирма, где работает юнит
                $('#populations').text(data[1]); // количество рабочих на фирме
            },
        "json");
    }

Вот, что происходит при этом в файле-обработчике settings.php:

session_start();
$firma = $_SESSION['firma'];
$user_id = $_SESSION['id'];
 
// Вычисляется обновленная информация о количестве рабочих в здании
$sql405 = "SELECT * FROM `builds` WHERE slogan = '{$firma}'";
$result405 = mysqli_query($database, $sql405);
$this_build = mysqli_fetch_all($result405, MYSQLI_ASSOC);
 
$populations = $this_build[0]['populations'];
 
// Вычисляются новые данные о юните (фирма, занятость)
$sql404 = "SELECT * FROM `units` WHERE id = '$user_id'";
$result404 = mysqli_query($database, $sql404);
$this_user = mysqli_fetch_all($result404, MYSQLI_ASSOC);
 
$user_firma = $this_user[0]['firma'];
 
$data = array($user_firma, $populations);
echo json_encode($data);

И после этого в графе фирмы у юнита пишется "Безработный". В БД тоже происходят изменения на безработный.

Проблема в следующем. Когда я закрываю ДОПОЛНИТЕЛЬНОЕ окно и вновь нажимаю на строку юнита, вновь открывается ДОПОЛНИТЕЛЬНОЕ окно, но там старая информация, юнит опять работает на фирме. И только при обновлении страницы в ДОПОЛНИТЕЛЬНОМ окне юнит уже уволенный. Как сделать, чтобы так не происходило? Вариант с обновление страницы не подойдет. Старая информация, вероятно, хранится в параметре data.firma, который в первом ajax-запросе. То есть из второго аякс-запроса переменную фирмы надо как-то передать в первый аякс-запрос. Но как это сделать?

По аналогии - есть магазин товаров. Вы открываете товар и жмете кнопку "Добавить в корзину". Делается это без перезагрузки страницы. Но когда вы закрываете товар, а потом вновь его открываете, там же уже эта кнопка не активна? А у меня получается опять активна, и я снова могу добавить этот товар в корзину.


Ответы (0 шт):