如何将选定的选项值添加到搜索查询

时间:2013-12-22 03:45:12

标签: php html search

因此,您可以在http://www.CyberBytesInc.com查看我的网站上的搜索,此时此工作正常。我想要做的是在搜索旁边有一个搜索参数下拉列表,一个是“搜索整个站点”,另一个是“搜索博客”。我正在使用谷歌自定义搜索,所以我只需搜索我的博客所有我需要的搜索词是“site:cyberbytesinc.com/blog/”又名,下拉列表的值。

这是HTML:

<div id="search" class="hidden">
  <form method="get" action="/search" class="row no-p-mobile">
    <select id="search-parameter" name="parameter">
      <option value="">Search Entire Site</option>
      <option value="site:cyberbytesinc.com/blog/">Search Blog</option>
    </select>
    <input id="search-field" name="q" type="search" placeholder="Enter to Search"/>
    <span class="visible-desktop"><input class="red-btn" type="submit" value="Search ›"></span>
    <!-- x-webkit-speech -->
  </form>
</div>

如果他们把它留在默认的“搜索整个网站”上,那么我希望它能像现在这样做,所以我将值设置为空。但是如果他们选择“搜索博客”,那么我希望他们在旁边输入他们的搜索查询,并且在点击输入时,它只需要选择他们选择的选项的值并将其放入搜索词之前的URL中,所以它会来自:

.com/search?q=example

.com/search?q=site:cyberbytesinc.com/blog/%20example

我知道这必须非常简单,我只是对这一切都很新,并且花了一些时间试图自己解决这个问题,而我正处于可以使用快速帮助的地步!

非常感谢大家/女士们:(

编辑(我现在非常关闭,只需要一点帮助):

我尝试了很多东西,例如,将选项和文本字段命名为同名,例如“q”并且我在搜索博客时管理了网址:

.com/search?q=site%3Acyberbytesinc.com%2Fblog%2F+&q=example

因此,当在下拉列表中仅选择博客时,它实际上将正确的内容引入到URL中。问题是,谷歌自定义搜索再次只是识别最后一个

"q=example"

并忽略第一个

"q=site%3Acyberbytesinc.com%2Fblog%2F"

即使两者之间有一个+。

如果我可以以某种方式让这个术语继续进行而没有第二个“q =”那么它就会起作用,因为如果你只是进入并删除它所构成的URL结构中的第二个“q =”它会很有效

1 个答案:

答案 0 :(得分:1)

你需要改变这个:

<div id="search" class="hidden-desktop">
  <ul class="row no-p-mobile p-top-10 p-bottom-10">
    <li>
      <select id="search-parameter" name="parameter">
        <option value="">Search Entire Site</option>
        <option value="site:www.cyberbytesinc.com/blog/%20">Search Blog</option>
      </select>
    </li>
    <li><form method="get" action="/search"><input id="search-field" type="search" name="q"/></form></li>
  </ul>
</div>

到这个

<div id="search" class="hidden-desktop">
  <ul class="row no-p-mobile p-top-10 p-bottom-10">
    <li>

    </li>
    <li><form method="get" action="/search"><input id="search-field" type="search" name="q"/>
<select id="search-parameter" name="parameter">
        <option value="">Search Entire Site</option>
        <option value="site:www.cyberbytesinc.com/blog/%20">Search Blog</option>
      </select>
</form></li>
  </ul>
</div>

您需要确保select元素位于表单元素内部,以便它正确关联,因为该表单元素将定义发送到服务器的方式和内容。这将自动将选择的值放在URL查询字符串中,其余部分由您决定。