java - Java Web 技术中的 AJAX 自动完成文本框(JSP 和 servlet)

标签 java html ajax jsp servlets

请帮助我了解如何使用 Java Web 技术(JSP、servlet 和 AJAX)使 HTML 输入文本元素像“Google 的 AJAX 搜索引擎”输入文本元素一样工作。下拉列表中的数据将来自数据库表,例如分别是 MySQL 或 Microsoft SQL 数据库。

我研究了有关此问题的 NetBeans 教程,但该教程无法从下拉列表中选择一个值以显示在 HTML 输入文本元素中。这是link .

谢谢。

最佳答案

@user2870719 您可以尝试如下所示,在您的 jsp 页面中向 servlet/jsp 发送 ajax 请求并将响应数据填充到 javascript 变量中。这样你就可以得到我上面提到的 jQuery 自动完成文本框。

<%@page import="java.sql.*"%>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
 </script>
<script type="text/javascript">
function showData(value){ 
$.ajax({
    url : "ur_servlet?name="+value,
    type : "POST",
    async : false,
    success : function(data) {
//Do something with the data here
    }
});
}
</script>
</head>
<body>
<form name="employee">
<input type="text" name="name" id="name" onkeyup="showData(this.value);"><br>


</table>
</body>
</html>

在 servlet 中,

String name = request.getParameter("name");
String buffer="";  
try{
   Class.forName("com.mysql.jdbc.Driver");
   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "root");
   Statement st=con.createStatement();
   ResultSet rs=st.executeQuery("select * from data where name like '"+name+"%'");
    while(rs.next())
    {
    buffer=buffer+"'"+rs.getString("name")+"',";
    }
response.getWriter().println(buffer);
}
 catch (Exception e) {
    e.printStackTrace();
 }

最后将响应发送到jsp页面。让我知道这是否有帮助..

关于java - Java Web 技术中的 AJAX 自动完成文本框(JSP 和 servlet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19322513/

相关文章:

html - Firefox 绝对位置防止按钮点击

html - 有没有办法在html中的contenteditable div中设置插入符号高度

ajax - Rails 渲染 JSON - session 丢失?

javascript - 通过表单发送 anchor 标记值

java - 解析 AggregationOutput mongo java 驱动程序

java - 使用 Scanner 在一行中接受多个整数

java - JCS还是java.util.Map,哪个在时间上效率更高?

html - 关于 `hover` - 如何在不同场景下处理子 `border-radius`?

javascript - 如何在 Laravel Controller 中处理 Ajax 响应?

java - HDFS文件内容的Java拆分方法