当用户在下拉列表中进行选择时,如何搜索SQL数据库。我知道如何使用一些javascript更改/添加文本到区域,但不知道如何使用SQL搜索。
理想情况下,我不想在此过程中更改页面,因为我认为他们不会在下拉列表中坚持使用单个选项。
提前干杯。 =)
答案 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返回您的网站。从第二个查询中获取您的信息到数据库,并返回您需要的信息。当您执行第二个查询(并且通常)时,您必须保护自己免受注入攻击向量的影响。最好的开始是确保您已正确编码(HTML,SQL)。
答案 3 :(得分:0)
如果没有更多信息,我只能真正为您提供以下指导。它使用jQuery加载函数将一个页面的内容放入一个元素中。请注意,.load不能跨域使用。
$("#searchButton").live("click", function() {
$("#results").load("/SearchResults.php?s=" + $("#searchBox").val());
});
另请注意,您应该使用某些内容来过滤HTML标记以防止SQL注入,以及采取其他措施。