【问题标题】:How to distinguish between search or browse function?如何区分搜索或浏览功能?
【发布时间】:2015-06-20 19:45:45
【问题描述】:

我有一个包含数千个条目的数据库。所以我需要一个页面来进行一些简单的搜索。我一直在摆弄一个简单的表单和搜索字段,但我无法区分用户是提交了搜索查询还是按下了浏览按钮。

这是我的简单 HTML:

<form action="index.php" method="get">
  <input autofocus name="query" placeholder="Enter your search here..." type="search" />
  <button name="browse">Browse</button>
</form>

问题是如何区分用户是输入了搜索查询想要搜索数据库,还是按下了浏览按钮浏览了数据库?

您需要更改我的 HTML/Form,还是有什么巧妙的 PHP 技巧来区分搜索或浏览功能?

【问题讨论】:

  • form 没有提交按钮。用户如何提交搜索查询?
  • 我可能不是 HTML 标准,但在您输入搜索查询后按 [ENTER] 键时它可以正常工作。我只是有点懒,没有在表单中放默认提交按钮。
  • @NateBarbettini — &lt;button name="browse"&gt;Browse&lt;/button&gt; 是一个提交按钮。

标签: php html forms search button


【解决方案1】:

摆弄上面提到的两个提交按钮。我想出了这个解决方案:

<form action="index.php" method="get">
  <input autofocus name="query" placeholder="Enter your search query here..." type="search" />
  <input hidden type="submit" />
  <button name="browse" value="true">Browse</button>
</form>

这完成了我想要的。您可以输入搜索查询并按 [ENTER] 键搜索数据库,也可以单击“浏览”按钮浏览数据库。

【讨论】:

    【解决方案2】:

    为浏览添加另一个提交按钮:

    <form action="index.php" method="get">
      <button name="browse">Browse</button>
      <button name="search">Search</button>
      <input autofocus name="query" placeholder="Enter your search here..." type="search" />
    </form>
    

    或者,为每个表单制作一个:

    我更喜欢这两种形式,因为我经常在隐藏的输入中嵌入额外的信息,或者我可以将每种形式定向到不同的脚本。两种形式给了我更多的灵活性。

    <form action="index.php" method="get">
      <button name="browse">Browse</button>
    </form>
    <form action="index.php" method="get">
      <input autofocus name="query" placeholder="Enter your search here..." type="search" />
      <button name="search">Search</button>
    </form>
    

    如果您希望将单独表单中的按钮并排放置,您可能需要添加一些 CSS

    form{display:inline;margin:0;padding:0;}
    

    我将两个按钮放在一个表单中,并且将两个表单都放在同一个页面上:

    而且无法区分它们

    【讨论】:

    • 您不需要 2 个表格,只需 2 个提交
    • 你是对的。有两种形式没有缺点。两个表单或一个表单和两个提交在布局上没有区别。这两种形式更加灵活,因为这两个按钮不必采用相同的形式。您还可以为每个表单添加具有不同值的隐藏字段。
    • 多写是缺点
    • 是的,如果 45 字节有所不同。
    猜你喜欢
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 2014-06-03
    相关资源
    最近更新 更多