下拉选择 - >搜索数据库

时间:2011-09-11 17:18:57

标签: javascript mysql html drop-down-menu

当用户在下拉列表中进行选择时,如何搜索SQL数据库。我知道如何使用一些javascript更改/添加文本到区域,但不知道如何使用SQL搜索。

理想情况下,我不想在此过程中更改页面,因为我认为他们不会在下拉列表中坚持使用单个选项。

提前干杯。 =)

4 个答案:

答案 0 :(得分:2)

你应该考虑为此实现Ajax。

这是一个简单的示例和教程,它使用下拉列表在选择时从数据库中提取信息,而不更改页面:)

http://www.w3schools.com/php/php_ajax_database.asp

您还应该考虑使用jquery来处理Ajax请求,如下面的答案中所述。 (用更少的代码做更多事情)。

另见: http://15daysofjquery.com/quick-and-dirty-ajax/14/用于简单的jquery Ajax教程。

答案 1 :(得分:2)

您必须在下拉框中添加onchange事件侦听器。当用户选择一个选项时,应该将AJAX(XmlHttpRequest)发送到服务器。服务器端脚本(例如PHP页面)应该解析参数(在检查之后)。

选中这些参数后,escaped的参数应为this reason。执行搜索查询,解析结果,并将输出发送回客户端(用户,浏览器)。

有用的链接:

答案 2 :(得分:1)

在呈现页面之前,请确保从数据库中获取要呈现的信息。

select distinct NAME, ID
from   tableName

您可以使用此处获取的信息为下拉框生成html。包含一些效果

<select onchange="doAction(this.value);">
  <option value="userID">userName</option>
  <option value="userID">userName</option>
  <option value="userID">userName</option>
  ...
</select>

然后执行AJAX request返回您的网站。从第二个查询中获取您的信息到数据库,并返回您需要的信息。当您执行第二个查询(并且通常)时,您必须保护自己免受注入攻击向量的影响。最好的开始是确保您已正确编码(HTMLSQL)。

答案 3 :(得分:0)

如果没有更多信息,我只能真正为您提供以下指导。它使用jQuery加载函数将一个页面的内容放入一个元素中。请注意,.load不能跨域使用。

$("#searchButton").live("click", function() {
    $("#results").load("/SearchResults.php?s=" + $("#searchBox").val());
});

另请注意,您应该使用某些内容来过滤HTML标记以防止SQL注入,以及采取其他措施。