2016-07-15 2 views
-1

У меня есть веб-форма HTML, где клиент может выбрать отчет, который они хотят распечатать. Теперь я должен получить значение из меню выбора и перенаправить клиента на правильную страницу отчета.PHP form redirect, если get elseif else

Пример:

<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

, что о том, когда вы получаете ежемесячно? будет ли он также перенаправляться на ежемесячный.php ?? –

+0

Да, он будет перенаправляться на ежедневные, еженедельные, ежемесячные и ежегодные – Kamikaza

ответ

2

При передаче данных с помощью PHP через форму с помощью POST или GET методом, тем данные формы будут , переданные через массив $ _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 
?> 

Хотя стоит отметить, что вы могли бы быть заинтересованы в использовании переключателя -случае заявление тоже:

<?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 метода, а затем перенаправить на конкретную страницу (например):

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

в распечатке 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. 
} 
0

Попытка:

if ($_GET['period'] == 'daily') { 
    header('Location: daily.php'); 
} else if ... 
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="select_report" и установить действие формы для «daily.php», потому что ежедневно значение выбора по умолчанию.

теперь просто использовать 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> 
Смежные вопросы