我在网页上有一个表单:
<?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
}
我想知道是否可以摆脱此功能,只需根据用户输入的内容直接从表单重定向?
答案 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