Java 使用ajax时搜索数据库不工作
我在数据库中使用ajax进行实时搜索,JSP也可以作为我的服务器代码。但是当我尝试运行应用程序时,搜索结果不会出来。请问我的ajax代码有什么问题吗。 Ajax代码Java 使用ajax时搜索数据库不工作,java,sql,ajax,jsp,Java,Sql,Ajax,Jsp,我在数据库中使用ajax进行实时搜索,JSP也可以作为我的服务器代码。但是当我尝试运行应用程序时,搜索结果不会出来。请问我的ajax代码有什么问题吗。 Ajax代码 function Search(){ if (window.XMLHTTPRequest){ xmlresults = new XMLHttRequest(); }else{ xmlresults = new ActiveXObject('Microsoft.XMLHTTP'); } xml
function Search(){
if (window.XMLHTTPRequest){
xmlresults = new XMLHttRequest();
}else{
xmlresults = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlresults.onreadystatechange = function (){
if(xmlresults.readyState == 4 && xmlresults.status == 200){
document.getElementById('searchResults').innerHTML = xmlresults.responseText;
}
}
xmlresults.open('GET','searchR.jsp?seb='+ document.form1.seb.value,true);
xmlresults.send();
}
JSP代码,根据在搜索框中输入的内容对数据库进行查询。在声明我的变量并导入java.sql.*包后,请尝试下面的捕获代码
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/search","root","root");
query = "select * from result";
// query = "select * from result where seb like '"+seb+"%'";
ps = con.prepareStatement(query);
rs = ps.executeQuery();
if(rs.next()){
%>
<div >
<%=rs.getString("seb")%>
</div>
<%
}
}catch(Exception e){
out.println("Error "+e);
}
%>
试试看{
Class.forName(“com.mysql.jdbc.Driver”);
con=DriverManager.getConnection(“jdbc:mysql://localhost/search“,”根“,”根“);
query=“从结果中选择*”;
//query=“从seb like'+seb+“%”的结果中选择*;
ps=合同准备陈述(查询);
rs=ps.executeQuery();
如果(rs.next()){
%>
显示搜索查询的页面。我正在使用表单元素
<form name="form1" id="form1" method="GET">
<table width="638" height="38" border="0">
<tr>
<td><span id="sprytextfield1">
<input name="seb" type="text" id="seb" size="75" autocomplete="on" placeholder="Enter into Search box" style="line-height: 25px; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: 700; font-size: 15px; border-radius: 9px; box-shadow: #F3F3F3 0.1em 0.1em 0.3em 0.1em; border-color: #F5F5F5;" onKeyUp="Search();">
<span class="textfieldRequiredMsg">A value is required.</span></span> <input type="submit" name="Search" id="Search" value="Search" style="height:30px;"></td>
</tr>
</table>
</form>
<table width="588" border="0">
<div id="searchResults">
</div>
</table>
需要一个值。
请注意,用于查询数据库的JSP代码的名称是searchR.JSP,它也是在ajax代码中指定/调用的,并且文本字段的id是seb,输入到搜索文本字段后显示的div标记的id是searchResults,它也在ajax代码中使用。我希望它清晰,我的错误可以被纠正向我指出。谢谢。我认为用这种方法解决这个问题根本不值得。因为您正在尝试使用JSP,这通常是由服务完成的(即调用数据库)。在MVC模式中,JSP是一个视图,应该保持原样。我会做的是在函数
onreadystatechange()中放置一个警报()
检查是否确实发生state 4
和status 200
是否真的发生。如果是,则检查responsetext
inalert()
。如果警报为空,则通过浏览器发送该特定请求以查看结果。我只介绍了3种情况中的一部分,其他情况也存在。尝试以这种方式进行调试。除了不使用MVC模式外,您的代码似乎还可以