2012-02-02 9 views
0

좋아, 내 문제에 관한 해결책을 찾았습니다. 내 JSP 페이지에 세 개의 텍스트 상자가 있습니다. 첫 번째 텍스트 상자에 데이터를 입력하면 데이터베이스에서 데이터를 검색하기 위해 get.jsp으로 이동하고 두 번째 텍스트 상자를 채 웁니다. 하지만 그 데이터가 한 번에 두 번째 텍스트 상자에서 한 번에 두 번째 텍스트 상자를 채우기 위해 get.jsp으로 바뀌길 원하지만 나는 시도하고 있었지만 데이터는 첫 번째 또는 두 번째 텍스트 상자에서 개별적으로 이동했습니다.자동 완성 텍스트 상자

---- auto.jsp ----------

<%@page import="java.sql.*"%> 
<html> 
<head> 
<script language="javascript" type="text/javascript"> 
var xmlHttp 
var xmlHttp 
function showState(str){ 
if (typeof XMLHttpRequest != "undefined"){ 
xmlHttp= new XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject){ 
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
if (xmlHttp==null){ 
alert ("Browser does not support XMLHTTP Request") 
return 
} 
var url="get.jsp";//goes to get.jsp 
url += "?count=" +str; 
xmlHttp.onreadystatechange = stateChange; 
xmlHttp.open("GET", url, true); 
xmlHttp.send(null); 
} 
function stateChange(){ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
document.getElementById("country").innerHTML=xmlHttp.responseText; 
} 
} 
</script> 
</head> 
<body> 
<input id="name" type="text" name="name" onkeyup="showState(this.value)"> 
<br> 
<div id='country'> 
</div> 
</body> 
</html> 

-------- get.jsp ----------- -

<%@page language="java" import ="java.sql.*" %> 
<% 
String name=request.getParameter("count"); 
String buffer="<div>"; 
//Got value from database 


while(rs.next()){ 
buffer=buffer+rs.getString(2)+"<br>"; 
} 
buffer=buffer+"</div>"; 
response.getWriter().println(buffer); 
%> 

여기 request.getParameter ("count")에 의해; 단 하나의 텍스트 상자 값을 얻고 있지만 첫 번째 및 두 번째 텍스트 상자에 데이터를 입력하여 auto.jsp에서 여러 값을 얻을 수는 있습니다.

+0

어떤 도움을 주시기 바랍니다 그랬던 것처럼 당신은 값을받을 수 있나요? – Tom

답변

1

onkeyup에서 showState() 함수를 호출하고 javascript 함수에서 텍스트 상자의 값을 추가하십시오.

var url="get.jsp";//goes to get.jsp 
url += "?count=" +document.getElementById(<first textbox's id>).value; 
url += "&secondVal="+document.getElementById(<second textbox's id>).value; 

하고

String secondVal=request.getParameter("secondVal"); 
+0

답장을 보내 주셔서 감사합니다. 첫 번째 텍스트 상자 ID를 textbox1로, 두 번째 텍스트 상자 ID를 textbox2로 지정했지만 stateChange() 함수에서 오류가 표시됩니다. { if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { document.getElementById ("country"). innerHTML = xmlHttp.responseText; } } 다음과 같이 작성했습니다. var url = "get.jsp"; // get.jsp로 이동 url + = "? count ="+ document.getElementById (); url + = "& secondVal ="+ document.getElementById (); 이렇게? – Tom

+0

은 이것을 올바른 이름으로 바꿔야 함을 의미합니다.이 문서와 같이 제공해야합니다 :)이 문서와 같이 제공해야합니다.^document.getElementById ("textbox1");'document.getElementById ("textbox2");' –

+0

ok. 텍스트 상자 이름은 동일해야합니까? 입력 유형 = "텍스트"이름 = "입력 ID ="이름 "유형 = id = "textbox2"onkeyup = "showState (this.value)"/> – Tom

관련 문제