如果get elseif,则表单重定向

时间:2016-07-15 02:07:15

标签: php html html5 redirect

我有一个HTML网络表单,客户可以在其中选择要打印的报告。现在,我必须从选择菜单中获取值,并将客户重定向到正确的报告页面。

示例:

<form action="print-report.php" name="print" method="get" target="_blank">
    <select name="period">
        <option value="daily" selected>Daily Report</option>
        <option value="anual">Anual Report</option>
        <option value="weekly">Weekly Report</option>
        <option value="monthly">Montly Report</option>  
    </select>
<input type="submit" value="Print Report"></form>

现在在另一页中,我必须获得客户需要的报告类型并将其重定向到正确的页面,但我不知道如何。

<?php
    if get daily redirect to daily.php
    elseif get weekly redirect to weekly.php
<?php

我该怎么做?

5 个答案:

答案 0 :(得分:2)

当您使用PHP通过表单使用POST或GET方法使用PHP提交数据时,表单数据将分别通过$ _POST或$ _GET数组传递,这是可以通过PHP文件访问。两个数组的关键是表单元素的名称。

因此,要获取所选下拉列表的值,您可以在PHP代码中使用以下内容:

<?php
    $SelectedValue = $_GET['period'];
    if($SelectedValue == "daily")        { header("Location: daily.php"); }
    else if($SelectedValue == "weekly")  { header("Location: weekly.php"); }
    // add your other options and redirects here
?>

虽然值得注意的是您可能也有兴趣使用 switch-case statement

<?php
    switch($_GET['period'])
    {
        case "daily":  header("Location: daily.php");  break;
        case "weekly": header("Location: weekly.php"); break;
        // add your other options and redirects here
        default:       header("Location: error.php");  break;
    }
?>

答案 1 :(得分:0)

您可以查看从$_GET方法收到的内容,然后重定向到特定页面(例如):

if ($_GET['period'] == 'daily') {
    // redirect to daily
} else {
    // redirect to other
}

答案 2 :(得分:0)

in print-report.php:

$url = $_GET["print"];

if($url == 'daily' || $url == 'weekly' || $url == 'monthly' || $url == 'yearly'){

   header("Location: {$url}.php");
}else{
   header("Location: 404.php");  // I just added this line to check for url param doesn't match your script name.
}

答案 3 :(得分:0)

尝试:

if ($_GET['period'] == 'daily') {
    header('Location: daily.php');
} else if ...

答案 4 :(得分:0)

您也可以使用jquery直接从您的html页面重定向。 这是你的代码:

<form action="daily.php" name="print" method="get" target="_blank">
   <select id="select_report" name="period">
      <option value="daily" selected>Daily Report</option>
      <option value="anual">Anual Report</option>
      <option value="weekly">Weekly Report</option>
      <option value="monthly">Montly Report</option>  
   </select>
   <input type="submit" value="Print Report">
</form>

我刚刚添加了一个ID来选择框id="select_report"并将表单操作设置为&#34; daily.php&#34;因为默认选择每日价值。

现在只需使用jquery cdn和此脚本进行重定向 -

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
$("#select_report").on('change', function(){
var x = $("#select_report").val();
if(x=="daily")
{
    $('form').get(0).setAttribute('action', 'daily.php');
}
else if(x=="anual")
{
    $('form').get(0).setAttribute('action', 'annual.php');
}
else if(x=="weekly")
{
    $('form').get(0).setAttribute('action', 'weekly.php');
}
else if(x=="monthly")
{
    $('form').get(0).setAttribute('action', 'monthly.php');
}
})
</script>