<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
</head>
<body>
<label>Значение 1
<input id='v1' type='text'>
</label>
<br>
<label>Значение 2
<input id='v2' type='text'>
</label>
<br>
<label>Значение 3
<input id='v3' type='text'>
</label>
<br><br>
<button type='button' id='bsave'>Save</button>
<br><br>
<textarea id='answ'></textarea>
<script>
const v1 = document.getElementById('v1');
const v2 = document.getElementById('v2');
const v3 = document.getElementById('v3');
const but = document.getElementById('bsave');
const answ = document.getElementById('answ');
but.addEventListener('click', async () => {
str = `{"v1":"${v1.value}","v2":"${v2.value}","v3":"${v3.value}"}`;
try {
const response = await fetch('./save.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: str
});
const text = await response.text();
answ.value = text;
} catch (err) {
answ.value = "Какая то ошибка"
}
});
</script>
</body>
</html>
save.php
<?php
/* Получаем строку JSON по POST запросу*/
$json_str = file_get_contents('php://input');
$values= json_decode($json_str, true);
$file ='savefile.txt';
/* Формируем строку для записи в файл*/
$str = 'v1=' . $values['v1'] . ' v2=' . $values['v2'] . ' v3=' . $values['v3'] . "\n";
/* Дописываем в конец файла*/
file_put_contents($file, $str, FILE_APPEND);
/* Снова считываем фесь файл*/
$answ = file_get_contents($file);
/* Передаем содержимое файла в качестве ответа*/
echo $answ;
?>