Php 根据所选选项值重定向页面的步骤
我想根据所选选项值重定向一个页面,如果我从选项标签中选择一个选项,那么它将重定向到google.com页面,否则我选择了另一个选项,它将重定向到gmail.com页面。我编写了这些代码,但如果我选择了另一个选项,它将重定向相同的值—任何解决方案Php 根据所选选项值重定向页面的步骤,php,Php,我想根据所选选项值重定向一个页面,如果我从选项标签中选择一个选项,那么它将重定向到google.com页面,否则我选择了另一个选项,它将重定向到gmail.com页面。我编写了这些代码,但如果我选择了另一个选项,它将重定向相同的值—任何解决方案 <?php $package = isset($_GET['package_select']); if ($package == 'one') { header("Location: http://google.com"); } else
<?php
$package = isset($_GET['package_select']);
if ($package == 'one')
{
header("Location: http://google.com");
}
else if ($package == 'two')
{
header("Location: http://youtube.com");
}
?>
<html>
<body>
<form action="#" method="get" id="packageForm" >
<select name="package_select">
<option value="">Select package</option>
<option value="one">One listing</option>
<option value="two">Two listings</option>
</select>
<input id="submitButton" type="submit" value="Submit" />
</form>
</body>
</html>
选择包
一个清单
两个列表
试试
if(isset($_GET['package_select'])){
if ($_GET['package_select'] == 'one')
{
header("Location: http://google.com");
exit;
}
else if ($_GET['package_select'] == 'two')
{
header("Location: http://youtube.com");
exit;
}
}
或者,更好的是
if(isset($_GET['package_select'])){
switch($_GET['package_select']){
case('one'):{ header("Location: http://google.com"); exit; }
case('two'):{ header("Location: http://youtube.com"); exit; }
}
}
isset
将返回true
或false
,具体取决于是否设置了给定变量。所以当你这样做的时候:
$package = isset($_GET['package_select']);
$package
将为true
或false
因此,当您将其与if($package=='one')
或else if($package=='two')
进行比较时,这些等式将永远无法正确实现。如果选择了one
或two
,则$package=='one'
将计算为true,因为true
在使用=='code>进行比较时等于'one'
和'two'
,并且您总是会得到第一个重定向
相反,您可以使用内置的筛选函数将$\u GET['package\u select']
的值分配给$package
,如果未设置$\u GET['package\u select']
,则可以使用null
值。(只有在未提交表单时才会出现这种情况。如果选择了空的“选择包”选项,则isset($\u GET['package\u Select'])
仍将返回true
)
那么你的if
/elseif
将正常工作,因为$package
可以包含一个或两个而不是一个bool。isset($\u GET['package\u select'])
将始终被视为已设置。@Fred ii-除非表单尚未提交,对吗?@Don t'tPanic Kind/sort;-)有趣的是,if
可以做什么呢?当然可以,但是你能解释一下为什么它们的语法一开始就失败了吗?这是你知道的一个原因。最好添加exit代码>在每个标题之后。这是一个很好的观点,@Fred ii-。我将更新答案以反映最佳实践。
$package = filter_input(INPUT_GET, 'package_select');