1 个表单,2 个选择,并在提交时将它们带到一个链接(PHP - 请帮助)


1 form, 2 selects and on submit takes them to a link (PHP - Please Help)

我想制作一个包含两个选择($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中净化此类值的专家,但值得研究。