Javascript 要重定向的页面取决于多个“选择”选项
我试图根据两个选择将页面重定向到相关页面。我不确定这是否最好用Javascript或PHP实现,因为我希望能够轻松地更改页面——这让我认为某种PHP表单处理程序是最好的 如能举出任何例子说明这一点,我们将不胜感激。我已经做了很多事来帮忙。如果我不够具体,我会尝试将页面重定向到某个页面,如果有人选择工程,然后是新南威尔士,如果他们选择健康,然后是新南威尔士等等Javascript 要重定向的页面取决于多个“选择”选项,javascript,php,html,Javascript,Php,Html,我试图根据两个选择将页面重定向到相关页面。我不确定这是否最好用Javascript或PHP实现,因为我希望能够轻松地更改页面——这让我认为某种PHP表单处理程序是最好的 如能举出任何例子说明这一点,我们将不胜感激。我已经做了很多事来帮忙。如果我不够具体,我会尝试将页面重定向到某个页面,如果有人选择工程,然后是新南威尔士,如果他们选择健康,然后是新南威尔士等等 提前感谢。找到了解决方案,@Sean的评论提供了大部分,我只是稍微调整了代码。工作PHP: 更干净一点的解决方案会更好 <?php
提前感谢。找到了解决方案,@Sean的评论提供了大部分,我只是稍微调整了代码。工作PHP:
更干净一点的解决方案会更好
<?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;
}
}
?>
我的方法是创建一个数组,将来也可以轻松地用数据库替换它
<?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']]);
}
?>
希望这有帮助你可以在php中使用if/else->if$_POST['specialist']==工程和&$_POST['state']==新南威尔士州{$redirect='page1.php'}或者如果$_POST['specialist']==健康和&$_POST['state']==新南威尔士州{$redirect='page2.php'}或者如果……你重定向链接是什么样的?如果有一种模式遵循,例如工程,然后新南威尔士重定向到www.example.com/engg/newsouthwales,健康,然后昆士兰www.example.com/Health/Queensland等,您可以更有效地执行。你打算使用php还是只使用javascript。@karmendra不幸的是,我不确定这个阶段的URL是什么,因为我们仍在处理网站结构,所以可能不得不降低效率。我还更喜欢使用PHP,这样我就可以将表单操作设置为PHP文件,它将从此处重定向。谢谢你的帮助@肖恩,谢谢,肖恩,我要玩一玩。谢谢你的帮助!试过@Sean谢谢你的帮助!谢谢例如,您是否会在下面使用else-if来添加运行状况?随着代码的增长,拥有许多if-else-if将变得非常难以管理和无法读取,在这些情况下,您更喜欢切换case。根据上面的代码,一个用于健康的else if将适合。或者只是另一个if块。因为如果不是工程的话,它会跳过这个区块。仅当需要执行任一代码块时才使用if-else。否则,这只是相同操作的更多代码:@verrucktfuchs我添加了一个替代的较短版本,看看您是否喜欢这个版本。@TomKriek谢谢!这很有道理。非常感谢你在这方面的帮助和时间。非常感谢@karmendra!这也是一个很好的解决方案,我之所以选择另一个,只是因为它可能更容易让我改变。如果我有任何问题,我会试试这个。再次感谢。没问题,你可以选择你喜欢的方式。但是我觉得这段代码很容易扩展、阅读和维护,也就是说,如果你想再添加一个链接,你只需要在数组中添加一个元素。想想当您必须更改/添加一个条目时,您需要添加或修改多少行代码。你添加/更改的代码越多,添加bug的机会就越多,这是我的哲学。非常正确!谢谢-希望我们能很快知道网站结构,并能简化
<?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']]);
}
?>