我有以下代码,根据名字和姓氏进行搜索。一旦我按下名字后的空格,搜索结果就会消失。如何在按空格后显示搜索结果。我在文本框中为firstname / LastName调用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);
}
答案 0 :(得分:1)
SQL语句中的变量name
,尝试修剪其中的所有前导和尾随空格。这应该可行。由于姓氏和名字分为两个不同的列。当你遇到太空。像John<whitespace>
这样的值被发送到查询。现在显然在你的名字中,列名必须只是John
,没有空格。当查询尝试使用尾随空格查找名称John时,它可能会失败。因此,在您进入太空后,您的搜索结果就会消失。