2016-07-15 8 views
-1

お客様は、印刷するレポートを選択できるHTML Webフォームを用意しています。今、selectメニューから値を取得し、顧客を正しいレポートページにリダイレクトする必要があります。elseifを取得した場合はPHPフォームのリダイレクト

例:他のページで今

<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 

どうすればいいですか?

+0

何のためにこのスクリプトを使用できますか?それはまたmonthly.phpにリダイレクトされますか? –

+0

はい、毎日、毎週、毎月、毎年にリダイレクトされます – Kamikaza

答えて

2

、フォームデータはで、PHPファイルからアクセスできる$ _POSTまたは$ _GETの配列にそれぞれ渡されます。両方の配列のキーは、フォーム要素の名前になります。

したがって、選択されたドロップダウンリストの値を取得するために、あなたはあなたの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 
?> 

を、それはあなたがスイッチを使用することに興味があるかもしれないということは注目に値しますけれどもあまりに-case声明:印刷report.phpで

<?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; 
    } 
?> 
0

あなたは$_GETメソッドから受け取るかどうか確認してから(例えば)特定のページにリダイレクトすることができます:あなたはPOSTを使用してフォームをPHPを使用してデータを送信したりする方法を得るとき

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

$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. 
} 
0

しよう:あなたは、あなたのHTMLページから直接リダイレクトすることもjqueryのを使用することができます

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

。ここ はあなたのコードです:

<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="select_report"を選択し、「daily.php」に設定し、フォームのアクションにIDを追加しました。

今ちょうどjQueryのCDNとあなたは毎月の取得時期についてredirection-

<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> 
関連する問題