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

时间:2014-12-21 04:31:19

标签: javascript php html

我试图在移动后获取范围滑块的值,然后更新我的页面。我通过使用“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(),它只是不断加载页面..请帮忙!任何输入都会有所帮助!谢谢!

1 个答案:

答案 0 :(得分:1)

看起来你可能会混淆Javascript和PHP。

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

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

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

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

编辑:效果警告!

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