我试图在移动后获取范围滑块的值,然后更新我的页面。我通过使用“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(),它只是不断加载页面..请帮忙!任何输入都会有所帮助!谢谢!
答案 0 :(得分:1)
看起来你可能会混淆Javascript和PHP。
当浏览器访问php文件时,PHP仅在您的服务器上运行。 php文件的输出(如使用echo
时)作为网页发送。但是,Javascript仅在浏览器中运行。要使它们通信,您需要加载另一个网页(或重新加载当前网页)。您可以使用表单或直接制作URL(在这种情况下可能更容易)。
所以你可以在printValue()
内做这样的事情:
location.querystring="?value=" + x.value;
这将创建一个GET参数,您可以使用$_GET['value']
访问该参数,然后重新加载页面。
编辑:效果警告!
每次移动滑块时,服务器都会重新发送网页,这可能会降低服务器的速度。您可能希望仅在用户单击按钮或其他内容后发送新值,在这种情况下,使用表单会更容易。