要重定向的页面取决于多个“选择”选项

时间:2015-01-23 09:46:43

标签: javascript php html

我正在尝试根据两个select选项将页面重定向到相关页面。我不确定这是否最好用Javascript或PHP完成,因为我希望能够轻松地更改页面 - 这让我觉得某种PHP表单处理程序是最好的。

JSFiddle

非常感谢任何有关如何运作的例子。我做了JSFiddle来帮忙。如果我不够具体,我试图让页面重定向到某个页面,如果有人选择“工程”,然后选择“新南威尔士”,如果他们选择“健康”,然后选择“新南方”威尔士“等等。

提前致谢。

3 个答案:

答案 0 :(得分:0)

找到了解决方案,@ Sean的评论提供了大部分内容,我只是略微调整了代码。使用PHP:

<?php if ($_POST['specialist'] == "engineering" && $_POST['state'] == "act"){ header("Location: act.php");} else if ($_POST['specialist'] == "engineering" && $_POST['state'] == "nsw"){ header("Location: nsw.php");} else if ($_POST['specialist'] == "engineering" && $_POST['state'] == "nt"){ header("Location: nt.php");} ...

答案 1 :(得分:0)

更清洁的解决方案是

<?php
if ($_POST['specialist'] == "engineering" && isset($_POST['state'])){
    switch($_POST['state']){
        case "act":
            header("Location: act.php");
        break;
        case "nsw":
            header("Location: nsw.php");
        break;
        case "nt":
            header("Location: nt.php");
        break;
        default:
            // Redirect to a default page if not matched or some other message
        break;
    }
}
?>

这样您每次都不必检查工程师。你可以为不同的职业制作多个。在重定向之后使用exit();break;也是一种很好的做法,在这种情况下实施。

您可以通过使用$_POST变量并直接使用它来加快速度,但这很容易被其他人滥用,因此请务必检查可用值。

<?php

$engineering_states = array('act', 'nsw', 'nt', 'qld', 'sa', 'tas', 'vic', 'wa');

if($_POST['specialist'] == "engineering"){
    if(in_array($_POST['state'], $engineering_states)){
        header("Location: $_POST['state'].php");
    }
}
?>

答案 2 :(得分:0)

我这样做的方法是创建一个数组(以后也可以用数据库代替)。

<?php
$a = Array(
    "engineering" => Array( "act"=>"enggact.php",
                            "nsw"=>"enggnsw.php",
                            "nt"=>"enggnt.php"
                          ),
    "health" => Array(  "act"=>"heltact.php",
                            "nsw"=>"heltnsw.php",
                            "nt"=>"heltnt.php"
                          ),
    "information-technology" => Array(  "act"=>"itact.php",
                            "nsw"=>"itnsw.php",
                            "nt"=>"itnt.php"
                          )
);
if(isset($a[$_POST['specialist']][$_POST['state']])) {
    header("Location:".$a[$_POST['specialist']][$_POST['state']]);
}
?>

希望这有帮助