У меня есть HTML-слайдер под названием myRange, который представляет годы. Я хочу получить значение и распечатать его в этом поле, когда я нажимаю кнопку:
<div id = "test">HELLO</div>
Я прочитал значение в сценарии:
var slider = document.getElementById("myRange");
function post()
{
var year = slider.value
$.post('year.php', {slideryear:year},
function(data){
$("#test").html(data);
});
}
А это файл year.php:
<?php
$year = $_POST['slideryear'];
?>
Когда я нажимаю кнопку, чтобы показать число в абзаце id="test", абзац становится пустым ("HELLO" исчезает). Моя первая попытка с PHP, что я делаю не так?
Я работаю на Апаче.






Вы сохраняете только значение сообщения в переменной $year, но вы должны вернуть значение в качестве ответа, если хотите получить его в обратном вызове, иначе HELLO будет заменено пустой строкой.
Попробуйте, например:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$year = $_POST['slideryear'];
echo $year;
}
?>
Вы уверены, что у вас есть значение для слайдера? Что вы видите при запуске var slider = document.getElementById("myRange"); console.info(slider.value); Вы видите ошибку в консоли браузера?
Да, ползунок дает правильные значения. Я печатаю их в другом <div>, который не включил в пост. Журнал консоли также показывает их, когда я нажимаю кнопку.
Можете ли вы проверить асинхронный почтовый вызов year.php в сетевой панели? Что вы видите в ответ? И что такое данные формы?
Вот оно: year.php | 200 | xhr | jquery-3.4.1.js:9837 | 372 B | 5 ms
Хорошо, я полагаю, вы используете Chrome? Если вы нажмете на имя файла, вы получите более подробную информацию и параметры с вкладками. Вы видите вкладку ответа или/и вкладку заголовков? Там должно быть больше информации о запросе и ответе. Таким образом, вы можете видеть данные, которые отправляются и принимаются. Вы хотите быть уверены, что вы отправляете данные на сервер и что сервер отправляет ответ обратно с данными.
Да, я использую Хром. Итак, данные формы проанализированы: slideryear: 1736 и источник: slideryear=1736
Хорошо, когда вы нажимаете на вкладку ответа, вы видите значение 1736?
На вкладке ответа year.php я вижу весь код, который вы разместили, все, что находится между <?php?>, включая скобки и вопросительные знаки.
Похоже, ответ - это сам php-код. Вы уверены, что ваша установка php/apache работает правильно? Я думаю, что если это работает, вы должны получить правильный результат.
Это действительно было проблемой. Я проверил установку, и она не работает должным образом. Теперь переменная читается правильно. Спасибо за пошаговую инструкцию.
Я думаю, вы имели в виду ==, я пытался, но все равно ничего не появляется, он продолжает оставаться пустым.