Как передать переменную из JavaScript в PHP через POST запрос?

Работаю над проектом, где нужно отправить данные из JavaScript в PHP файл, используя метод POST. У меня есть значение в коде на JavaScript, и я хочу передать его как POST переменную в другой PHP скрипт.

Мой текущий код на JavaScript:

<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript">

// Основной код для отправки переменной в handler.php:
$(document).ready(function(){
  $('#result_container').load('handler.php').show();
    $('#user_input').keyup(function() {
    $.post('handler.php', { data: document.forms.myform.user_input.value },
        function(response){
            $('#result_container').html(response).show();
            });
    });
});
</script>

</head>
<body>
<?php $data = $_GET['data']; ?>
<form name="myform">
<input type="text" id="user_input" name="user_input" value="<?php echo $data; ?>">
</form>

<div id="result_container"></div>

</body>
</html>

Это моя попытка передать значение переменной из JavaScript в handler.php через POST запрос.

handler.php?data=значение

Есть ли более эффективный или альтернативный способ реализации такой передачи данных?

Зачем POST? Если данные не секретные, используй GET. В handler.php добавь var_dump($_POST) - посмотри что реально приходит. И если форма разрастется, лучше сразу FormData использовать вместо отдельных переменных.

твой код работает, но можно упростить. я бы использовал serialize() для форм или передавал значения через $.post напрямую. зачем сначала load, а потом keyup? убери первый load. добавь обработку ошибок в ajax - если что-то сломается, хотя бы узнаешь об этом. и в handler.php не забывай isset() для $_POST[‘data’]

У тебя лишняя строчка с $_GET[‘data’] в PHP - раз используешь POST, получай через $_POST. Можешь заменить document.forms.myform.user_input.value на $(‘#user_input’).val() - короче будет. И учти, что keyup срабатывает на каждый символ, лучше добавь debounce чтобы сервер не забивать запросами.