3

我有一个名称属性为 q 的搜索字段,单击提交按钮后,我希望表单转到同一页面(即 index.php),因此我将表单的操作设置为:

'index.php?a=nl&b=search'.

我希望导航到的 url 是这样的(所以 action-url + 字段的名称):

'index.php?a=nl&b=search&q=search-term'. 

然而,点击后页面导航到

'index.php?q=search-term'

有没有办法解决这个问题 ?

4

6 回答 6

5

无需a=nl&b=search在表单中添加操作,只需在表单中添加两个额外的隐藏输入:

<input type='hidden' name='a' value='nl' />
<input type='hidden' name='b' value='search' />
于 2012-09-20T12:16:41.213 回答
3

添加 a 和 b 在表单中具有所需值的隐藏字段。

于 2012-09-20T12:16:04.190 回答
3

将表单方法设为 GET 并将字段添加为隐藏字段。

看起来您的表单只有q输入字段(以及没有名称属性的提交按钮)。在提交后将要附加到 url 的内容作为隐藏输入添加 - 例如:

<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'] : ''; ?>"/>

.....表格的其余部分...

于 2012-09-20T12:16:30.377 回答
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>

由于该操作转到同一页面,因此您无需指定它。

于 2012-09-20T12:18:51.017 回答
1

使用GET方法<form>,您的表单应如下所示:

<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>
于 2012-09-20T12:29:42.703 回答
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,另一种获取 var 的便捷方法是通过$_REQUEST数组访问它们,如下所示:

$_REQUEST['a']
$_REQUEST['b']
$_REQUEST['q']
于 2012-09-20T12:22:25.700 回答