0

我在网页上有一个表格:

<?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

4 回答 4

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>
于 2012-07-23T15:31:20.880 回答
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

于 2012-07-23T15:48:40.090 回答
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;
  }
}
于 2012-07-23T15:29:04.640 回答
0

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

if (isset($_POST['query']) {
  $value = $_POST['query'];
  if ($value == 1) {
    //do something
  }
  if ($value == 2) {
    //do something
  }
}
于 2012-07-23T15:29:20.850 回答