我想制作一个包含两个选择($a和$b)和一个提交按钮的表单,当他们单击提交时,该按钮将它们带到链接"http://www.mywebsite.com/$a$b"
例如,如果他们在第一个选择"等级"和第二个"10",然后单击提交,则将他们带到"http://www.mywebsite.com/grade10"
这是我的索引.php,我还没有这样做,因为我不知道如何:P
<?php
error_reporting(E_ERROR | E_PARSE);
$a = $_POST['a'];
$b= $_POST['b'];
echo $a, $b;
?>
<form action="index.php" method="post">
<select name="a" title="a" id="a" >
<option> </option>
<option>a</option>
</select>
<select name="b" title="b" id="b" >
<option> </option>
<option>b</option>
</select>
<input type="submit" value="submit" />
</form>
谢谢:)
从技术上讲,您不需要PHP,因此您可以将POST请求的中间人切回服务器端代码,并通过JavaScript直接转到目标页面。 也许是这样的:
<form action="index.php" method="post" id="redirector">
<select name="a" title="a" id="a" >
<option> </option>
<option>a</option>
</select>
<select name="b" title="b" id="b" >
<option> </option>
<option>b</option>
</select>
<input type="button" value="submit" />
</form>
<script type="text/javascript">
document.getElementById('redirector').onsubmit = function () {
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
window.location.href = 'http://www.mywebsite.com/' + a + b;
return false;
};
</script>
如果他们禁用了JavaScript,表单仍将回发到页面,在这种情况下,PHP代码仍然可以捕获它们并执行重定向:
$a = $_POST["a"];
$b = $_POST["b"];
header("Location: http://www.mywebsite.com/" . $a . $a);
您可能希望为 JavaScript 版本和 PHP 版本中的值添加一些错误检查逻辑,以防用户未选择某些内容(例如,如果选择中存在空选项)或恶意用户尝试发布错误值。 从技术上讲,在PHP版本中,您将用户输入回显到响应中,因此您应该研究跨站点脚本攻击之类的内容。 我不是如何在PHP中净化此类值的专家,但值得研究。