表单/提交基于用户输入指向URL的按钮

时间:2012-07-23 15:24:20

标签: php html codeigniter

我在网页上有一个表单:

<?php echo form_open('/search/processing'); ?>

<input type="text" name="query" size="50" />

    <input type="submit" name="1" value="1" /></br>
    <input type="submit" name="2" value="2" /></br>
    <input type="submit" name="3" value="3" /></br>

</form>

它适用于此控制器功能:

public function processing()
{
// redirects here based on user input and what submit button was pressed
}

我想知道是否可以摆脱此功能,只需根据用户输入的内容直接从表单重定向?

4 个答案:

答案 0 :(得分:1)

<script>
window.addEventListener('load', function(){
    document.getElementById('formid').addEventListener('submit', function(){
        for(var i = 0; i < this.length; i++)
            if(this[i].type == 'submit' &&
               this[i].value == 1) window.location.href = 'foo.com';
            else if( ... )
               ....
            else if( ... )
               ....
    }, false);
}, false);
</script>

答案 1 :(得分:0)

如果你想使用纯PHP,那么:

if(isset($_POST['query']))
{
  switch($_POST['query'])
  {
    case 'hello': header('location: http://www.google.com'); break;
    case 'stack': header('location: http://www.ask.com'); break;
    case 'overflow': header('location: http://www.yahoo.com'); break;
  }
}

答案 2 :(得分:0)

是的,这可以通过以下方式实现: 评论的位置,包括重定向代码或函数调用。

if (isset($_POST['query']) {
  $value = $_POST['query'];
  if ($value == 1) {
    //do something
  }
  if ($value == 2) {
    //do something
  }
}

答案 3 :(得分:0)

这是一个更改表单操作的简单javascript版本,它可能不是你想要的,因为你有3个单独的按钮,但它可能有用。

<script type="text/javascript">
function test()
 {
     if ( document.forms.form.test1.checked )
     {
         document.forms.form.action = "http://google.com";
     }

     return true;
 }
</script>
<form name="form" action="a.html" onsubmit="return test()">
    <input type="checkbox" id="test1" name="test1" />
    <input type="submit" value="submit" />
</form>

基本上,如果您选中了按钮,则会转到google.com - 否则a.html