JS-Кнопка выгрузки из Базы Данных.

<?php
// PHP-логика определения телефона
$id = $modx->resource->get('id');

if ($id == 59 || $id == 60 || $id == 61 || $id == 72) {
$tel_display = '8 7777777 **';
$tel2 = '77777777';
} else {
$tel_display = '+77777777-**';
$tel2 = '777777777777';
}

// Записываем две последние цифры в сессию PHP.
$_SESSION['last_two_digits'] = substr($tel2, -2); - оно говорило что это должно передаться в u.php, но пока - не срабатывало.

print <<
$tel_display

// Флаг, чтобы загрузка происходила только один раз
let digitsLoaded = false;

async function fetchLastTwoDigits() {
// Если цифры уже загружены или идет загрузка, выходим из функции
if (digitsLoaded) return;
digitsLoaded = true; // Устанавливаем флаг, чтобы предотвратить повторные вызовы

try {
let response = await fetch('/u.php', { method: 'POST' });

if (!response.ok) {
throw new Error('Ошибка HTTP: ' + response.status);
}

let lastTwoDigits = await response.text();

const phoneDisplay = document.getElementById('phone-display');
const currentText = phoneDisplay.innerText;

// Заменяем маску ** на реальные цифры
phoneDisplay.innerText = currentText.replace('**', lastTwoDigits);

} catch (error) {
console.error('Ошибка при запросе:', error);
// В случае ошибки можно сбросить флаг, если нужно повторить попытку
// digitsLoaded = false;
}
}

// Добавляем обработчики событий наведения
const phoneLink = document.getElementById('phone-link');

// Для десктопов (наведение мыши)
phoneLink.addEventListener('mouseenter', fetchLastTwoDigits);

// Для мобильных устройств (первое касание)
phoneLink.addEventListener('touchstart', fetchLastTwoDigits);

HTML;
?>

---------

Это просто рабочий код. Не асинхронный. Из Друпала.

let response = fetch('/vv', {
method: 'POST',
headers: {"Content-type": "application/x-www-form-urlencoded; charset=UTF-8"},
body: 'sotr='+sotr.value+'&kr='+kr.value+'&den='+den.value+'&id='+id.value,
});

-------------------

(async () => {

let response = await fetch('json.php', {
method: 'POST',
headers: {"Content-type": "application/x-www-form-urlencoded; charset=UTF-8"},
body: 'id='+u.id+'&zag='+zag+'&tel='+u.tel+'&city='+u.city+'&categories='+u.categories+'&podkat='+u.sub_category
});

//let result = await response.text();
//alert(result);
})();

----------

hhhhh

'use strict';

kn1.onclick = async () => {

let response = await fetch('https://****.com/schot.php', {
method: 'POST',
});

let data = await response.text();

alert('---'+data);

};

-------------------------
'use strict';

kn1.onclick = async () => {
let response = await fetch('json.php', {
method: 'POST',
});

let data = await response.json();

alert(data.name3);
}
---------------------

$mysqli = new mysqli("localhost", "", "", "");

print json_encode($mysqli->query("SELECT * FROM test5 where id=2") -> fetch_assoc());

Компьютер: