将url参数传递给搜索表单


Passing a url param to a search form

确切的问题:试图从url传递一个参数到搜索框的目标页面。

参数是"subid":

http://www.domain.com/?subid=3456

和php中当前(不工作)的搜索表单代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<form action="http://search.yahoo.com/search?subid=<?php print $_GET['subid'];?>&" target="_blank" id="search-box">
  <input type="text" name="p" size="31" />
  <input type="submit" value="Search" />
</form>
</body>
</html>

我可以在firebug中看到subbid在form action中当我进入这里

http://www.domain.com/?subid=3456

但是当我在表单中运行查询时,没有传递到yahoo.

那么问题在哪里?

您也应该将subid作为参数,并指定方法为get

<form action="http://search.yahoo.com/search" target="_blank" method="get" id="search-box">
  <input type="hidden" name="subid" value="<?php print $_GET['subid'];?>" />
  <input type="text" name="p" size="31" />
  <input type="submit" value="Search" />
</form>

根据作者的要求,对GET参数增加了一些过滤:

<form action="http://search.yahoo.com/search" target="_blank" method="get" id="search-box">
  <input type="hidden" name="subid" value="<?=(int)$_GET['subid']?>" />
  <input type="text" name="p" size="31" />
  <input type="submit" value="Search" />
</form>

也可以在输出前使用strip_tags + htmlentities函数