2012-09-17 36 views
0

我有下面的代码,基于名字和姓氏搜索。一旦我在名字后按空格,搜索结果就会消失。如何在按空格后显示搜索结果。我在firstname/LastName的文本框中调用ajax函数。ajax搜索后空格键不工作

<script type="text/javascript"> 
function lookup(inputString) { 
if(inputString.length == 0) { 
$('#suggestions').hide(); 
} else { 
$.post("states.jsp", {queryString: ""+inputString+""}, function(data){ 
if(data.length >0) { 
$('#suggestions').show(); 
$('#autoSuggestionsList').html(data); 
} 
}); 
} 
} 
function fill(thisValue) { 
$('#inputString').val(thisValue); 
setTimeout("$('#suggestions').hide();", 200); 
} 
</script> 

// States.JSP文件

String sql = "SELECT EMP_EMPLOYEE_ID, EMP_FNAME, EMP_LNAME FROM UAP.dbo.UAP_EMPLOYEE  where EMP_FNAME LIKE '%"+name+"%' OR EMP_LNAME LIKE '%"+name+"%';"; 
Statement stm = con.createStatement(); 
stm.executeQuery(sql); 
ResultSet rs= stm.getResultSet(); 
while (rs.next()){ 

out.println("<li onclick='fill(\""+rs.getString("EMP_FNAME")+" " +rs.getString("EMP_LNAME")+"\");'>"+rs.getString("EMP_FNAME")+" "+rs.getString("EMP_LNAME")+" </li>"); 
}}catch(Exception e){ 
out.println("Exception is ;"+e); 
} 

回答

1

变量name在SQL语句,尝试修剪所有前导和尾部空格在里面。这应该可能起作用。由于姓和名是在两个不同的列中。当你击中空间时。值这样的John<whitespace>正在发送到查询。现在很明显,你的名字列名必须是John,没有空格。由于查询尝试查找带有空白后缀的名称John,因此可能会失败。因此,您的搜索结果在您点击空间后正在消失。

+0

你觉得这有帮助吗?即使我渴望知道;) – Shades88