0

我们有一个如下所示的搜索框,用户可以在其中输入一个值,例如 1234 ABC 街,单击“搜索”并显示结果。

<!--form1 -->

         <div id="inputBG">
       <form id="searchForm" class="search_field" method="get" action="">
            <input name="searchBox" id="searchBox" value="3440 Mark Drive" />
            <button type="button" onclick="searchMap()"><img src="Viewer/images/search.png" alt="Search" /></button>
          </form>
         </div>

这很好用。

但是,如果用户希望显示多于一种类型的结果,则用户单击名为“高级搜索”的图标。发生这种情况时,将在新窗口中打开一个只有下面显示的复选框的表单。

<!--Form2 --->
          <div id="featuresDiv">
            <form id="featuresForm">
               <br/>
                <input type="checkbox" name="srcoptions" onClick="checkAll(this.form,this)" checked>Check/Uncheck All<br>
               <label><input type="checkbox" name="featType" checked value="Addresses">Addresses</label><br/>
               <label><input type="checkbox" name="featType" checked value="Voter Precincts">Voter Precincts</label><br/>
               <label><input type="checkbox" name="featType" checked value="Voter Precincts (Pending)">Voter Precincts (Pending)</label><br/>
               <label><input type="checkbox" name="featType" checked value="Voting Polls">Voting Polls</label><br/>
               <label><input type="checkbox" name="featType" checked value="Voting Polls (Pending)">Voting Polls (Pending)</label><br/>
               <label><input type="checkbox" name="featType" checked value="Zip Codes">Zip Codes</label><br/>
               <label><input type="checkbox" name="featType" checked value="Zoning Petitions">Zoning Petitions</label><br/>
               <button type="button" onclick="searchMap()"><img src="MapViewer/images/magnifying_glass.png" alt="Search" /></button>
             </form>
            </div>

用户可以选择选中所有框或仅选中几个框。

当用户单击搜索时,应该显示这些复选框的结果。

在使用复选框选项并且选中多个框的情况下,搜索框在搜索中变得无关紧要。

我已经尝试了几件事,但到目前为止似乎没有任何效果。

当我使用复选框选项并检查多个选项时,我收到自定义消息“您的搜索未返回任何结果”

这是我们尝试过的 Javascript,它应该在搜索来自搜索框 (form1) 或复选框 (form2) 时显示。

然后我们有 php,它应该将所有搜索值(搜索框或复选框)抓取到逗号分隔的值中。

这已经让我们发疯了 3 多天了。

值得注意的是,搜索框的默认值为 3440 Mark Street。

我真的很难过。

任何帮助是极大的赞赏。

// Construct query
**$features = $_GET["featType"];**

$tsql = "SELECT *    FROM globes AS TBL
  WHERE KEY_TBL.RANK > 0
ORDER BY ListOrder, Name, TBL.RANK DESC";
4

1 回答 1

0

有关 doGlobalSearch 中发生的事情以及 PHP 中如何处理数据的更多信息会有所帮助。顺便说一句,我猜在发送到 PHP 的数据的格式和预期的格式方面存在一些差异。在黑暗中彻底刺伤,你试过做featureList = features.join()吗?您确定需要引用各个值吗?

只是一个建议,但我会这样做:

  • 将两种形式合二为一。
  • 隐藏高级搜索 div 时,默认所有复选框未选中(或禁用它们)。
  • 显示高级搜索 div 时检查(或启用)它们。
  • 将 [] 添加到每个复选框名称的末尾,以便在提交表单时将(选中的)值作为数组传递给 PHP。

这样,PHP 将直接一起接收 searchData 和 featTypes(如果有的话),而您不必从 PHP 中的字符串中解析出 featTypes。然后你需要用 javascript 做的就是提交表单并处理响应。同样,这是不知道后端发生了什么或您对其拥有什么控制权的情况。

于 2013-04-12T17:34:56.620 回答