PHP基于具有多组单选按钮的表单提交重定向到特定URL

时间:2013-04-15 13:27:24

标签: php forms redirect submit

我正在尝试设置一个表单,我的网站用户piciscan.co.uk将用于订购相册。我想在订购相册时为他们提供一些选择,在提交表格时,我希望将客户重定向到我的独立商店网站的相关页面 - piciscanshop.co.uk。

例如,如果用户想要在布局4中订购带有打印页码的人像相簿,则应将其重定向到piciscanshop.co.uk/portrait-layout4-pagenums-photobook。

到目前为止,我有一个表单的html,并且相信有可能,通过一些PHP来实现我正在寻找的东西,发生。

这是html代码:

<form id="layoutSelector" method="get" action="layoutSelector.php">

<fieldset>
<input type="radio" name="aspect" id="layoutAspectPortrait" value="portrait">
<label for="layoutAspectPortrait">Portrait</label>
<br>
<input type="radio" name="aspect" id="layoutAspectPortrait" value="landscape" checked="checked">
<label for="layoutAspectPortrait">Landscape</label>
</fieldset>

<fieldset>
<input type="radio" name="layout" id="layoutNumber1" value="layout1">
<label for="layoutNumber1">Layout 1</label>
<br>
<input type="radio" name="layout" id="layoutNumber2" value="layout2">
<label for="layoutNumber2">Layout 2</label>
<br>
<input type="radio" name="layout" id="layoutNumber3" value="layout3" checked="checked">
<label for="layoutNumber3">Layout 3</label>
<br>
<input type="radio" name="layout" id="layoutNumber4" value="layout4">
<label for="layoutNumber4">Layout 4</label>
</fieldset>

<fieldset>
<input type="radio" name="pageNums" id="layoutPageNums" value="pageNums">
<label for="layoutPageNums">Page Numbers</label>
<br>
<input type="radio" name="pageNums" id="layoutNoPageNums" value="" checked="checked">
<label for="layoutNoPageNums">No page numbers</label>
<br>
</fieldset>
<div class="submitsAndHiddens">
<input type="submit" value="Submit">
</div>
</form>

所以,我想我正在寻求的帮助是:如何编写layoutSelector.php。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

在layoutSelector.php中,通过$_GET['field_name_here']获取表单数据,然后根据需要进行处理(使用var_dump($_GET);查看传入的所有内容)。然后,使用die(header('Location: other_page.php'));重定向到相应的页面。

因此,对于您的问题中的示例,layoutSelector.php可能如下所示:

<?php
    if ($_GET['layout'] === 'layout4' && $_GET['pageNums'] === 'layoutPageNums') {
        die(header('Location: /portrait-layout4-pagenums-photobook'));
    }
?>

或者,如果您的所有页面都以这种方式布局,您可能只需执行以下操作:

<?php
    die(header('Location: /'. $_GET['aspect'] .'-'. $_GET['layout'] .'-'. $_GET['pageNums'] .'-photobook'));
?>

更好的解决方案是在提交表单时通过JavaScript检查这些值并更改表单操作,因此不需要重定向(这会更快)。

答案 1 :(得分:0)

layoutSelector.php中的

把这段代码

$page = $_GET['aspect'] . "-" . $_GET['layout'] . '-' . $_GET['pageNums'] . '-' .'photobook';


header('Location : '. 'http://piciscanshop.co.uk/'.$page);