Php 如何根据表单选择重定向人员

Php 如何根据表单选择重定向人员,php,javascript,html,Php,Javascript,Html,使用一个简单的html表单,如何根据用户的选择重定向用户 <form id="contact-form" action="xxxxx" method="post"> <li>option1 <ul> <li><label>Red</label> <input type="radio" name="Option1" id="vsat" value="red"></li> <li>&l

使用一个简单的html表单,如何根据用户的选择重定向用户

<form id="contact-form" action="xxxxx" method="post">
<li>option1
<ul>
  <li><label>Red</label> <input type="radio" name="Option1" id="vsat" value="red"></li>
  <li><label>Blue</label> <input type="radio" name="Option1" id="blue" value="blue"></li>
  <li><label>White</label> <input type="radio" name="Option1" id="white" value="white"></li>
</ul>
</li>
<li>option2
<ul>
  <li><label>Big</label> <input type="radio" name="Option2" id="vsat" value="red"></li>
  <li><label>Small</label> <input type="radio" name="Option2" id="blue" value="blue"></li>
</ul>
</li>
<li>Location
<ul>
  <li><label>Europe</label> <input type="radio" name="Option3" id="eur" value="eur">    </li>
<li><label>America</label> <input type="radio" name="Option3" id="ame" value="ame"></li>
</ul>

  • 选择1
    • 红色的
    • 蓝色的
    • 白色的
  • 选择2
    • 大的
    • 小的
  • 位置
    • 欧洲
    • 美国
  • 例如:

    如果选择为:Red/Big/Europe,请访问www.somedomain.com/001

    如果选择:Blue/Big/Europe,请访问www.somedomain.com/006

    如果选择:blue/small/America,请访问www.somedomain.com/us/003


    谢谢你们的帮助

    您可以向表单添加
    onSubmit
    处理程序,检查表单值,并使用Javascript重定向到所需页面。如果您想让它在没有Javascript的情况下工作,您的PHP脚本基本上可以通过将HTTP
    位置:
    头设置为您想要访问的URL来完成相同的工作。

    我会使用jQuery

    我会为每个输入添加一个类-ie.options,并为每个包含您想要指向的url的输入添加一个数据属性。并有一个容器来保存他们的选择,即:

    <input type="hidden" name="location" id="location" />
    
    然后提交

     $('#formID').submit(function() {
        var loc = $('#location').val(); 
        window.location = loc;
     });
    

    这样就可以循环使用“options”类遍历所有单选按钮,并在单击按钮时为其添加事件侦听器。因此,当有人单击其中一个时,它会检查它是否被选中(因为它可能被单击以取消选中),如果它被选中,则会将与该选择相关的url(存储在数据位置attr中)添加到#位置隐藏输入中。然后,当表单提交时,它会将用户发送到该url,您需要添加一些内容来处理空url等。

    首先,您将使用某种重定向脚本,我将在此处使用via标头

    <?php
       //this will NOT work, the browser received the HTML tag before the script or even a white space
       header( 'Location: http://www.linktoredirect.com/' ) ;
    ?>
    
    
    
    然后你应该让所有的选项都感觉像一个,这样你就可以在开关或类似的东西中使用它

    <?php
    $singleOption = $_GET['option1']."-".$_GET['option2']."-".$_GET['option3'];
    //Now that you have one big option you can easily do:
    switch($singleOption){
        case "red-big-europe": $sufix = '001'; break;
        case "blue-big-europe": $sufix = '002'; break;
        //And so on
        default: $sufix='404'; //some default value to redirect if it doesn't match anything
    }
    //With the switch you already have the sufix, so you only do:
    header( 'Location: http://www.somedomain.com/$sufix' ) ;
    ?>
    

    你能发布一些你尝试过的代码吗?不清楚你想用什么方式重定向。通过PHP或JS?您应该检查接收提交表单数据的PHP脚本上的POST-ed内容,并根据提交的内容使用
    header()
    进行重定向。请注意,OP没有指定如何进行重定向。同意,“如何根据人们的选择重定向”这是一个选项。事实上,这不是:D。他/她没有告诉任何地方谁应该执行重定向PHP或JS。有许多基于需求的方法可以做到这一点。因此,这些问题应该被标记为没有建设性。OP有一个JS建议,为什么不加入一个PHP替代方案,然后我们就有了所有的基础。嗯,我可以,但问题应该是描述性的。类似于:
    如何做到这一点?
    的问题在SO社区中不受欢迎,不应被容忍。
    <?php
    $singleOption = $_GET['option1']."-".$_GET['option2']."-".$_GET['option3'];
    //Now that you have one big option you can easily do:
    switch($singleOption){
        case "red-big-europe": $sufix = '001'; break;
        case "blue-big-europe": $sufix = '002'; break;
        //And so on
        default: $sufix='404'; //some default value to redirect if it doesn't match anything
    }
    //With the switch you already have the sufix, so you only do:
    header( 'Location: http://www.somedomain.com/$sufix' ) ;
    ?>