仅基于无线电选择提交时重定向表单用户

时间:2015-06-05 23:38:59

标签: javascript php jquery html forms

我对编码的了解很少,所以在我学习的过程中学习基础知识。

在我的多页表单中,我有4个“无线电”类型选择,最终用户必须选择至少1才能继续表单。我想要做的是将表单重定向到他们提交表单时选择的无线电输入的特定页面关系。

我看过你管视频并整天阅读大量的旧帖子,我尝试的一切似乎都行不通。

我不确定javascript,jquery或php是否最好使用if或isset语句,由于我的知识,我不能使用正确的搜索短语,以便找到正确的方法,所以经过14个小时的尝试我不得不寻求你的专业知识!

任何简单的方法都足够且非常有用,我希望有人可以帮助我解决这个问题。

例如,4个无线电选择将转到:

<input class="form-radio" type="radio" id="hbs" name="options" value="hbs" />  ==>  page1.php
<input class="form-radio" type="radio" id="bs"  name="options" value="bs"  />  ==>  page2.php
<input class="form-radio" type="radio" id="pvr" name="options" value="pvr" />  ==>  page3.php
<input class="form-radio" type="radio" id="epc" name="options" value="epc" />  ==>  page4.php 

我需要代码仅在用户点击提交时重定向用户,原因是表单中的多个字段与收音机选择在同一页面上。

由于

3 个答案:

答案 0 :(得分:4)

您可以通过php中的header('Location: url');将某个页面重定向到特定页面。

以下是符合您要求的示例:

<?php
$value_to_page = array(
    "hbs" => 'page1.php',
    "bs"  => 'page2.php',
    "pvr" => 'page3.php',
    "epc" => 'page4.php',
);
if(isset($_POST['submit'])){

    // process other fields like $_POST['some-other']
    if(isset($_POST['options']) && isset($value_to_page[$_POST['options']])){
        header('Location: '.$value_to_page[$_POST['options']]);
        return;
    }
} ?>

<form method="post">
    <input type="text" name="some-other" />
    <input class="form-radio" type="radio" id="hbs" name="options" value="hbs" />
    <input class="form-radio" type="radio" id="bs"  name="options" value="bs"  />
    <input class="form-radio" type="radio" id="pvr" name="options" value="pvr" />
    <input class="form-radio" type="radio" id="epc" name="options" value="epc" />
    <button type="submit" name="submit">Send</button>
</form>

答案 1 :(得分:2)

一个简单的解决方案可能是require_once你想要的POST结果所需的页面代码如图所示(将它放在php文件的顶部,高于任何HTML):

<?php

switch ($_POST["options"]) {
    case "hbs":
        require_once("page1.php");
        break;
    case "bs":
        require_once("page2.php");
        break;
    case "pvr":
        require_once("page3.php");
        break;
    case "epc":
        require_once("page4.php");
}

die();

?>

答案 2 :(得分:0)

好的,这是一个很好的问题,但是并不难,使用jQuery,你也是can see it working in jsfiddle(在jsfiddle中无法正常处理安全问题,但在你的机器上试试):

<form id="myForm">
    <input class="form-radio" type="radio" id="hbs" checked="true" name="options" value="hbs"  page="page1.php" />  ==>  page1.php
    <input class="form-radio" type="radio" id="bs"  name="options" value="bs" page="page2.php"  />  ==>  page2.php
    <input class="form-radio" type="radio" id="pvr" name="options" value="pvr" page="page3.php" />  ==>  page3.php
    <input class="form-radio" type="radio" id="epc" name="options" value="epc" page="page4.php" />  ==>  page4.php
    <button type="submit">send</button>
</form>

<script>
    $(function(){
       $("#myForm").submit(function(e){
           var page = $(this).find("input[name=options]:checked").attr("page");
           this.action = page;       
       });
    });
</script>
相关问题