将URL参数传递给搜索表单

时间:2013-05-16 15:47:49

标签: php forms parameters

确切问题:尝试将一个参数从网址传递到搜索框目标网页。

这种方式是“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,当我去这里时,subid处于表单动作中:

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

但是当我在表单中运行查询时,并没有传递给雅虎。

那么问题出在哪里?

2 个答案:

答案 0 :(得分:4)

您还应将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>

答案 1 :(得分:0)

正如作者所要求的,为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个函数。