我有一个名称属性为q的搜索字段,单击提交按钮后我希望表单转到同一页面(即index.php),所以我设置表单的动作如下:
'index.php?a=nl&b=search'.
我希望导航到的网址是这样的(所以action-url +字段的名称):
'index.php?a=nl&b=search&q=search-term'.
然而,点击后页面会导航到
'index.php?q=search-term'
有没有办法解决这个问题?
答案 0 :(得分:4)
不要在表单操作中使用a=nl&b=search
,只需在表单中添加两个额外的隐藏输入:
<input type='hidden' name='a' value='nl' />
<input type='hidden' name='b' value='search' />
答案 1 :(得分:3)
添加a和b在表单中包含具有所需值的隐藏字段。
答案 2 :(得分:3)
将表单方法设为GET,并将字段添加为隐藏字段。
看起来您的表单只有q
输入字段(以及没有名称属性的提交按钮)。在提交为隐藏输入后添加要添加到网址的内容 - 例如:
<form method="get" action="yoururl.com?a=nl&b=search">
<input type="hidden" name="a" value="<?php echo isset($_GET['a']) ? $_GET['a'] : ''; ?>"/>
<input type="hidden" name="b" value="<?php echo isset($_GET['b']) ? $_GET['b'] : ''; ?>"/>
.....其余形式...
答案 3 :(得分:1)
这样的表格可以解决问题:
<form action="" method="get">
<input name="q" type="text"/>
<input name="a" type="hidden" value="nl"/>
<input name="b" type="hidden" value="search"/>
<input type="submit" value="Submit"/>
</form>
由于操作转到同一页面,因此您无需指定它。
答案 4 :(得分:1)
使用<form>
中的 GET 方法,您的表单应如下所示:
<form method="get" action="index.php">
<input type="hidden" value="nl" name="a">
<input type="hidden" value="search" name="b">
<input type="text" name="q">
<input type="submit" value="submit">
</form>
答案 5 :(得分:0)
所以你说你的表格如下:
<form method="POST" action='index.php?a=nl&b=search'>
<input type="text" name="q">
</form>
在这种情况下,您可以按如下方式访问 PHP 中的三个变量:
$_GET['a']
$_GET['b']
$_POST['q']
因为动作中的变量作为GET传递,而表单中的字段作为POST传递。
如果他们是GET或POST,那么在不加注意的情况下获取vars的另一种方便方法就是通过$_REQUEST
数组访问它们,如下所示:
$_REQUEST['a']
$_REQUEST['b']
$_REQUEST['q']