0

名と姓に基づいて検索する以下のコードがあります。名の後にスペースを押すと、検索結果が消えます。スペースを押した後に検索結果を表示する方法。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);
}
4

1 に答える 1

1

SQL ステートメントの変数ですname。先頭と末尾の空白をすべて削除してみてください。それはおそらくうまくいくはずです。姓と名が 2 つの異なる列にあるためです。スペースにヒットしたとき。このような値John<whitespace>がクエリに送信されています。明らかに、名前の列には名前Johnのみが必要で、空白はありません。クエリは、末尾に空白がある John という名前を検索しようとするため、失敗する可能性があります。したがって、スペースをヒットすると、検索結果が消えます。

于 2012-09-17T08:20:48.903 に答える