PHP搜索查询帮助

时间:2011-04-13 19:15:51

标签: php

我有以下代码:

<?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如何停止此操作?我不记得曾经遇到过这个问题:/

由于

2 个答案:

答案 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>