一个搜索页面,在输入关键词后可以快速敲下回车进行搜索,也可能用鼠标点击“搜索”按钮开始搜索。对一个站点,这是很正常的功能。但是我刚做的却发现回车与点击是不同的?1、点按钮的反应(因为是get方法,所以地址栏可见、可编辑):
http://localhost/search.php?keyword=bon&search=Search点击按钮在关键词之后还会接上search=Search(这个应该是按钮的Value值),可正常搜索,并得到结果。<form name="searchfm" method="get" action="<?php echo $SCRIPT_NAME; ?>">
    Seach for: <input type="text" name="keyword" />
    <input type="submit" name="search" value="Search" />
</form>2、回车的反应:
http://localhost/search.php?keyword=bon使用enter键发送搜索命令,却只有关键词的参数,这样则不可以搜索,会重新返回到输入关键词之前的状态下。搜索的代码:(主要部分)
if ($_GET['search']) {
if($_GET['keyword'] == '') {
echo 'You need to enter a keyword.';
}
else {
$keyword = mysql_real_escape_string($_GET['keyword']);

$sql = "select * from news where title like '%$keyword%' or content like '%$keyword%'";
$res = mysql_query($sql);
$num = mysql_num_rows($res);
if($num == 0) {
echo 'No Records.';
}
else {
while($row = mysql_fetch_assoc($res)) {
echo '<div>' . $row['title'] . '</div>';
}
}
}
}问题:这是为什么?怎么解决?

解决方案 »

  1.   

    <form name="searchfm" method="get" action="<?php echo $SCRIPT_NAME; ?>">
        <input type=hidden name="search" value="Search" />
        Seach for: <input type="text" name="keyword" />
        <input type="submit" value="Search" />
    </form>按钮没有被点击,自然就不能提交按钮的值
      

  2.   

    回车是直接提交你所在表单的数据,但是并不包括submit按钮.
    按submit按钮才提交按钮信息!