0

我有以下基于名字和姓氏搜索的代码。一旦我在名字后按空格,搜索结果就会消失。如何在按空格后显示搜索结果。我在名字/姓氏的文本框中调用 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);
}
4

1 回答 1

1

SQL 语句中的变量name,尝试修剪其中的所有前导和尾随空格。那应该可以了。因为姓氏和名字在两个不同的列中。当你击中空间。像这样John<whitespace>的值被发送到查询。现在显然在你的名字列名必须是John唯一的,没有空格。当查询尝试查找带有尾随空格的名称 John 时,它可能会失败。因此,您的搜索结果会在您点击空格后消失。

于 2012-09-17T08:20:48.903 回答