我有以下代码:
<?php
function search_reset()
{
$query = $_GET['q'];
if($query)
echo '<a class="reset" title="Clear search query" href="http://localhost:8888/search/">Clear search query</a>';
}
function search_query()
{
$query = $_GET['q'];
echo $query;
}
?>
<form method="get" action="">
<fieldset>
<input type="text" name="q" id="q" value="<?php search_query(); ?>" placeholder="Search" />
<?php search_reset(); ?>
<span class="submit">
<input type="submit" name="submit" id="submit" value="Search" title="Search" />
</span>
</fieldset>
</form>
这个想法是,当用户进行搜索时,它将执行正常的查询字符串,例如domain.com/?q=searchquery
但是它会从提交按钮添加第二个查询字符串,如下所示:/?q=hello&submit=Search
如何停止此操作?我不记得曾经遇到过这个问题:/
由于
答案 0 :(得分:4)
提交按钮也是一个要提交的表单元素。从元素中删除名称,它不会与其余的表单元素一起提交。
答案 1 :(得分:0)
查询由表单元素组成,通过配对每个元素的名称和值。因此,如果您有名为“drink”,“milk”,“sugar”的表单元素,并且用户键入值“tea”,“yes”,“3”,则查询字符串为(为清晰起见,为空格):
mysite.com?喝=茶&amp;牛奶=是&amp;糖= 3
因此,在您的表单中,您必须设置值以便重建查询字符串:
<form method="get" action="">
<input type="text" name="q" id="q" value="<?php search_query(); ?>" placeholder="Search" />
<?php search_reset(); ?>
<input type="submit" id="submit" title="Search" />
</form>