使用 PHP 获取输入类型范围的值

Using PHP to get the value of input type range onchange

本文关键字:范围 类型 输入 PHP 获取 使用      更新时间:2023-09-26

我正在尝试在范围滑块移动后获取其值,然后更新我的页面。我通过使用"onchange"并调用一些javascript来为文本框设置值并使用php来获取该值来解决这个问题。php 甚至不会在加载时从文本区域中获取值,我不确定为什么。它说输入文本框的 id 是一个"未识别的索引"。可能有一件简单的事情出错,或者我可能完全错误地接近它。我是新手...

这是滑块的代码。

<!doctype html>
<html lang="en">
  <head>
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script>
        function printValue(sliderID, textbox) {
            var x = document.getElementById(textbox);
            var y = document.getElementById(sliderID);
            x.value = y.value;
        }
        window.onload = function() { printValue('slider1', 'rangeValue1')};
</script>
          </head>
  <body>
<form action='slider.php' method='get'>
<input id="slider1"  type="range" min="100" max="500" step="10" onchange="printValue('slider1','rangeValue1')">
<input id="rangeValue1" type="text" size="2">
</form>
<?php
echo $_GET['#rangeValue1'];
?>

  </body>
</html>

js 函数确实设置了输入文本框,但 php 脚本不会发生。我需要在 PHP 中获取值,因为我包含它的页面是用 PHP 编写的。我不知道是否或如何必须重新加载页面。我尝试在onchange函数中使用location.reload((,它只是连续加载页面。请帮忙!任何意见都会有所帮助!谢谢!

看起来你可能会把Javascript和PHP混为一谈。

当浏览器访问 php 文件时,PHP 仅在您的服务器上运行。php文件的输出(如使用echo时(作为网页发送。但是,Javascript仅在浏览器中运行。要使它们通信,您需要加载另一个网页(或重新加载当前网页(。您可以使用表单或直接制作 URL(在这种情况下可能更容易(。

所以你可以在printValue()里面做这样的事情:

location.querystring="?value=" + x.value;

这将创建一个 GET 参数,您可以使用 $_GET['value'] 访问该参数,并重新加载页面。

编辑:性能警告!

每次移动滑块时,您的服务器最终都会重新发送网页,这可能会降低服务器的速度。您可能希望仅在用户单击按钮或其他内容后发送新值,在这种情况下,使用表单会更容易。